Linux v3.18.2
This commit is contained in:
parent
dca3c158ea
commit
c1b14f57bf
|
@ -9,23 +9,23 @@ Patch for disconnect issues with storage attached to a
|
|||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||||
index 674c262907d9..d3e4c73d56a2 100644
|
||||
index b649fef2e35d..fb89290710ad 100644
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -5041,6 +5041,13 @@ static void hub_events(void)
|
||||
(u16) hub->change_bits[0],
|
||||
(u16) hub->event_bits[0]);
|
||||
@@ -5023,6 +5023,13 @@ static void hub_event(struct work_struct *work)
|
||||
(u16) hub->change_bits[0],
|
||||
(u16) hub->event_bits[0]);
|
||||
|
||||
+ /* Don't disconnect USB-SATA on TrimSlice */
|
||||
+ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) {
|
||||
+ if ((hdev->state == 7) && (hub->change_bits[0] == 0) &&
|
||||
+ (hub->event_bits[0] == 0x2))
|
||||
+ hub->event_bits[0] = 0;
|
||||
+ }
|
||||
+ /* Don't disconnect USB-SATA on TrimSlice */
|
||||
+ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) {
|
||||
+ if ((hdev->state == 7) && (hub->change_bits[0] == 0) &&
|
||||
+ (hub->event_bits[0] == 0x2))
|
||||
+ hub->event_bits[0] = 0;
|
||||
+ }
|
||||
+
|
||||
/* Lock the device, then check to see if we were
|
||||
* disconnected while waiting for the lock to succeed. */
|
||||
usb_lock_device(hdev);
|
||||
/* Lock the device, then check to see if we were
|
||||
* disconnected while waiting for the lock to succeed. */
|
||||
usb_lock_device(hdev);
|
||||
--
|
||||
2.1.0
|
||||
|
||||
|
|
|
@ -159,12 +159,12 @@ index 000000000000..424896a0b169
|
|||
+ return 0;
|
||||
+}
|
||||
diff --git a/include/linux/efi.h b/include/linux/efi.h
|
||||
index 5ce40e215f15..41359e548bcb 100644
|
||||
index 58d7feadd149..b1d686e9175e 100644
|
||||
--- a/include/linux/efi.h
|
||||
+++ b/include/linux/efi.h
|
||||
@@ -906,6 +906,10 @@ extern bool efi_poweroff_required(void);
|
||||
(md) <= (efi_memory_desc_t *)((m)->map_end - (m)->desc_size); \
|
||||
(md) = (void *)(md) + (m)->desc_size)
|
||||
@@ -919,6 +919,10 @@ extern bool efi_poweroff_required(void);
|
||||
char * __init efi_md_typeattr_format(char *buf, size_t size,
|
||||
const efi_memory_desc_t *md);
|
||||
|
||||
+struct key;
|
||||
+extern int __init parse_efi_signature_list(const void *data, size_t size,
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
Date: Wed, 3 Sep 2014 15:43:25 -0400
|
||||
Subject: [PATCH] HID: wacom: Add support for the Cintiq Companion
|
||||
|
||||
The Wacom Cintiq Companion shares the same sensor than the Cintiq
|
||||
Companion Hybrid, with the exception of the different PIDs.
|
||||
|
||||
Bugzilla: 1134969
|
||||
Upstream-status: Queued for 3.18
|
||||
|
||||
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
---
|
||||
drivers/hid/wacom_wac.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
|
||||
index aa6a08eb7ad6..c3cbbfb5811f 100644
|
||||
--- a/drivers/hid/wacom_wac.c
|
||||
+++ b/drivers/hid/wacom_wac.c
|
||||
@@ -2573,6 +2573,14 @@ static const struct wacom_features wacom_features_0x309 =
|
||||
{ "Wacom ISDv5 309", .type = WACOM_24HDT, /* Touch */
|
||||
.oVid = USB_VENDOR_ID_WACOM, .oPid = 0x0307, .touch_max = 10,
|
||||
.check_for_hid_type = true, .hid_type = HID_TYPE_USBNONE };
|
||||
+static const struct wacom_features wacom_features_0x30A =
|
||||
+ { "Wacom ISDv5 30A", 59352, 33648, 2047, 63,
|
||||
+ CINTIQ_HYBRID, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES, 200, 200,
|
||||
+ .oVid = USB_VENDOR_ID_WACOM, .oPid = 0x30C };
|
||||
+static const struct wacom_features wacom_features_0x30C =
|
||||
+ { "Wacom ISDv5 30C", .type = WACOM_24HDT, /* Touch */
|
||||
+ .oVid = USB_VENDOR_ID_WACOM, .oPid = 0x30A, .touch_max = 10,
|
||||
+ .check_for_hid_type = true, .hid_type = HID_TYPE_USBNONE };
|
||||
|
||||
#define USB_DEVICE_WACOM(prod) \
|
||||
HID_DEVICE(BUS_USB, HID_GROUP_WACOM, USB_VENDOR_ID_WACOM, prod),\
|
||||
@@ -2708,6 +2716,8 @@ const struct hid_device_id wacom_ids[] = {
|
||||
{ USB_DEVICE_WACOM(0x304) },
|
||||
{ USB_DEVICE_WACOM(0x307) },
|
||||
{ USB_DEVICE_WACOM(0x309) },
|
||||
+ { USB_DEVICE_WACOM(0x30A) },
|
||||
+ { USB_DEVICE_WACOM(0x30C) },
|
||||
{ USB_DEVICE_WACOM(0x30E) },
|
||||
{ USB_DEVICE_WACOM(0x314) },
|
||||
{ USB_DEVICE_WACOM(0x315) },
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
|
||||
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
|
||||
@@ -390,7 +390,7 @@ static int xgene_enet_process_ring(struct xgene_enet_desc_ring *ring,
|
||||
}
|
||||
}
|
||||
|
||||
- return budget;
|
||||
+ return count;
|
||||
}
|
||||
|
||||
static int xgene_enet_napi(struct napi_struct *napi, const int budget)
|
|
@ -1,84 +0,0 @@
|
|||
From rharm-kernel-patches-bounces@redhat.com Fri Nov 21 18:21:38 2014
|
||||
From: Mark Salter <msalter@redhat.com>
|
||||
To: rharm-kernel-patches@redhat.com
|
||||
Subject: [PATCH] tty/pl011: make ttyAMA0 the active console device
|
||||
Date: Fri, 21 Nov 2014 18:21:30 -0500
|
||||
Message-Id: <1416612090-31594-1-git-send-email-msalter@redhat.com>
|
||||
|
||||
Upstream: No. Temporary workaround to avoid console=
|
||||
Testing: Seattle booting with devicetree
|
||||
|
||||
The pl011 uart driver doesn't register itself as a console
|
||||
until device_initcall time. This allows the virtual console
|
||||
driver to register the active console if no console= is
|
||||
given on the cmdline. This patch allows ttyAMA0 to take
|
||||
over the active console device role from any existing
|
||||
console device if no console= is given on the cmdline.
|
||||
|
||||
Signed-off-by: Mark Salter <msalter@redhat.com>
|
||||
---
|
||||
drivers/tty/serial/amba-pl011.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
|
||||
index 8572f2a..454aa26 100644
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -2182,7 +2182,15 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
|
||||
}
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * temp hack to avoid need for console= on cmdline
|
||||
+ * this can go away when we switch completely to acpi
|
||||
+ */
|
||||
+ if (amba_reg.cons && !console_set_on_cmdline && uap->port.line == 0)
|
||||
+ amba_reg.cons->flags |= CON_CONSDEV;
|
||||
ret = uart_add_one_port(&amba_reg, &uap->port);
|
||||
+ if (amba_reg.cons && !console_set_on_cmdline && uap->port.line == 0)
|
||||
+ amba_reg.cons->flags &= ~CON_CONSDEV;
|
||||
if (ret) {
|
||||
amba_ports[i] = NULL;
|
||||
uart_unregister_driver(&amba_reg);
|
||||
--
|
||||
1.9.3
|
||||
|
||||
From rharm-kernel-patches-bounces@redhat.com Tue Nov 18 22:09:42 2014
|
||||
From: Mark Salter <msalter@redhat.com>
|
||||
To: rharm-kernel-patches@redhat.com
|
||||
Subject: [PATCH v2] tty/sbsauart: make ttySBSA the active console device
|
||||
Date: Tue, 18 Nov 2014 22:09:04 -0500
|
||||
Message-Id: <1416366544-31116-2-git-send-email-msalter@redhat.com>
|
||||
|
||||
The sbsauart driver doesn't register itself as a console
|
||||
until module_initcall time. This allows the virtual console
|
||||
driver to register the active console if no console= is
|
||||
given on the cmdline. This patch allows ttySBSA to take
|
||||
over the active console device role from any existing
|
||||
console device if no console= is given on the cmdline.
|
||||
|
||||
Upstream: No
|
||||
Testing: Seattle and Foundation Model
|
||||
|
||||
Signed-off-by: Mark Salter <msalter@redhat.com>
|
||||
---
|
||||
drivers/tty/sbsauart.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/tty/sbsauart.c b/drivers/tty/sbsauart.c
|
||||
index 3a3ff88..e7d35d5 100644
|
||||
--- a/drivers/tty/sbsauart.c
|
||||
+++ b/drivers/tty/sbsauart.c
|
||||
@@ -280,6 +280,9 @@ static int sbsa_tty_probe(struct platform_device *pdev)
|
||||
qtty->console.device = sbsa_tty_console_device;
|
||||
qtty->console.setup = sbsa_tty_console_setup;
|
||||
qtty->console.flags = CON_PRINTBUFFER;
|
||||
+ /* if no console= on cmdline, make this the console device */
|
||||
+ if (!console_set_on_cmdline)
|
||||
+ qtty->console.flags |= CON_CONSDEV;
|
||||
qtty->console.index = pdev->id;
|
||||
register_console(&qtty->console);
|
||||
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
commit 701e24e5a9e59b17bbfc9a3bdbd61f346cd468ea
|
||||
Author: Donald Dutile <ddutile@redhat.com>
|
||||
Date: Tue Sep 16 18:53:48 2014 -0400
|
||||
|
||||
arm64: kvm: Change vgic resource size error to info
|
||||
|
||||
A new check was added to upstream to ensure a full
|
||||
kernel page was allocated to the vgic. The check failed
|
||||
kvm configuration if the condition wasn't met.
|
||||
This 'feature' has been around and there isn't a security
|
||||
issue in Acadia. Change error to info & continue configuration
|
||||
for now.
|
||||
A future patch using ACPI &/or a DT update will make this patch
|
||||
go away in a future snap release.
|
||||
|
||||
Signed-off-by: Donald Dutile <ddutile@redhat.com>
|
||||
|
||||
diff --git a/virt/kvm/arm/vgic-v2.c b/virt/kvm/arm/vgic-v2.c
|
||||
index 416baed..f43488c 100644
|
||||
--- a/virt/kvm/arm/vgic-v2.c
|
||||
+++ b/virt/kvm/arm/vgic-v2.c
|
||||
@@ -240,11 +240,18 @@ int vgic_v2_probe(struct device_node *vgic_node,
|
||||
}
|
||||
|
||||
if (!PAGE_ALIGNED(resource_size(&vcpu_res))) {
|
||||
+#if 0 /* not for upstream, firmware fix */
|
||||
kvm_err("GICV size 0x%llx not a multiple of page size 0x%lx\n",
|
||||
(unsigned long long)resource_size(&vcpu_res),
|
||||
PAGE_SIZE);
|
||||
ret = -ENXIO;
|
||||
goto out_unmap;
|
||||
+#else
|
||||
+ kvm_info("GICV size 0x%llx not a multiple of page size 0x%lx\n",
|
||||
+ (unsigned long long)resource_size(&vcpu_res),
|
||||
+ PAGE_SIZE);
|
||||
+ kvm_info("Update DT to assign GICV a multiple of kernel page size \n");
|
||||
+#endif
|
||||
}
|
||||
|
||||
vgic->vcpu_base = vcpu_res.start;
|
|
@ -24,8 +24,6 @@ CONFIG_RESET_CONTROLLER=y
|
|||
CONFIG_RESET_GPIO=y
|
||||
|
||||
CONFIG_RCU_FANOUT_LEAF=16
|
||||
# CONFIG_RTC_DRV_SNVS is not set
|
||||
# CONFIG_RTC_DRV_HYM8563 is not set
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
CONFIG_INPUT_PWM_BEEPER=m
|
||||
CONFIG_ARM_SP805_WATCHDOG=m
|
||||
|
@ -70,10 +68,10 @@ CONFIG_POWER_RESET_VEXPRESS=y
|
|||
CONFIG_REGULATOR_VEXPRESS=m
|
||||
CONFIG_SENSORS_VEXPRESS=m
|
||||
CONFIG_CLKSRC_VERSATILE=y
|
||||
CONFIG_POWER_RESET_VERSATILE=y
|
||||
# CONFIG_ARM_CHARLCD is not set
|
||||
|
||||
# Power/Thermal/Cpufreq
|
||||
CONFIG_GENERIC_CPUFREQ_CPU0=m
|
||||
# CONFIG_ARM_DT_BL_CPUFREQ is not set
|
||||
# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
|
||||
|
||||
|
@ -88,22 +86,27 @@ CONFIG_OF_FLATTREE=y
|
|||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_IOMMU=y
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_OF_MDIO=m
|
||||
CONFIG_OF_MTD=y
|
||||
CONFIG_OF_NET=y
|
||||
CONFIG_OF_PCI_IRQ=m
|
||||
CONFIG_OF_PCI=m
|
||||
CONFIG_OF_RESERVED_MEM=y
|
||||
CONFIG_OF_RESOLVE=y
|
||||
CONFIG_PATA_OF_PLATFORM=m
|
||||
# CONFIG_OF_SELFTEST is not set
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_THERMAL_OF=y
|
||||
|
||||
# CONFIG_OF_MDIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
|
||||
# External Connectors
|
||||
CONFIG_EXTCON=m
|
||||
CONFIG_EXTCON_GPIO=m
|
||||
CONFIG_EXTCON_ADC_JACK=m
|
||||
# CONFIG_EXTCON_SM5502 is not set
|
||||
# CONFIG_EXTCON_RT8973A is not set
|
||||
|
||||
# MTD
|
||||
CONFIG_MTD_BLKDEVS=m
|
||||
|
@ -127,9 +130,9 @@ CONFIG_GPIO_WATCHDOG=m
|
|||
CONFIG_GPIOLIB=y
|
||||
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_MDIO_GPIO=m
|
||||
CONFIG_BACKLIGHT_GPIO=m
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_POWER_RESET_GPIO_RESTART=y
|
||||
CONFIG_POWER_RESET_RESTART=y
|
||||
|
||||
#i2c
|
||||
|
@ -184,6 +187,8 @@ CONFIG_CMA_AREAS=7
|
|||
# CONFIG_IRQ_DOMAIN_DEBUG is not set
|
||||
# CONFIG_LOCK_STAT is not set
|
||||
|
||||
# CONFIG_CADENCE_WATCHDOG is not set
|
||||
|
||||
# CONFIG_DRM_ARMADA is not set
|
||||
# CONFIG_DRM_TEGRA is not set
|
||||
# CONFIG_SHMOBILE_IOMMU is not set
|
||||
|
|
30
config-arm64
30
config-arm64
|
@ -8,6 +8,7 @@ CONFIG_SCHED_SMT=y
|
|||
|
||||
# arm64 only SoCs
|
||||
CONFIG_ARCH_XGENE=y
|
||||
# CONFIG_ARCH_THUNDER is not set
|
||||
|
||||
# CONFIG_AMBA_PL08X is not set
|
||||
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||
|
@ -17,7 +18,6 @@ CONFIG_ARM64_64K_PAGES=y
|
|||
|
||||
CONFIG_BCMA_POSSIBLE=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
||||
CONFIG_BQL=y
|
||||
CONFIG_BRCMUTIL=m
|
||||
CONFIG_BUG=y
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
|
@ -42,7 +42,6 @@ CONFIG_HZ=100
|
|||
|
||||
CONFIG_KVM=y
|
||||
CONFIG_KVM_ARM_MAX_VCPUS=8
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
|
||||
CONFIG_NFS_ACL_SUPPORT=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
|
@ -53,7 +52,7 @@ CONFIG_NFS_USE_KERNEL_DNS=y
|
|||
# CONFIG_PL330_DMA is not set
|
||||
CONFIG_RCU_FANOUT=64
|
||||
# CONFIG_RTC_DRV_PL030 is not set
|
||||
# CONFIG_RTC_DRV_PL031 is not set
|
||||
CONFIG_RTC_DRV_PL031=y
|
||||
CONFIG_SERIAL_8250_DMA=y
|
||||
# CONFIG_SERIAL_AMBA_PL010 is not set
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
|
@ -69,6 +68,7 @@ CONFIG_EFI_VARS=y
|
|||
CONFIG_EFIVAR_FS=y
|
||||
CONFIG_EFI_VARS_PSTORE=y
|
||||
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
|
||||
CONFIG_RTC_DRV_EFI=y
|
||||
|
||||
CONFIG_ARM64_CRYPTO=y
|
||||
CONFIG_CRYPTO_SHA1_ARM64_CE=m
|
||||
|
@ -82,6 +82,7 @@ CONFIG_CRYPTO_DEV_CCP=y
|
|||
CONFIG_CRYPTO_DEV_CCP_DD=m
|
||||
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
|
||||
|
||||
CONFIG_ARM64_CPUIDLE=y
|
||||
|
||||
# APM Xgene
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
|
@ -91,13 +92,8 @@ CONFIG_AHCI_XGENE=y
|
|||
CONFIG_PHY_XGENE=y
|
||||
CONFIG_NET_XGENE=y
|
||||
CONFIG_RTC_DRV_XGENE=m
|
||||
CONFIG_RTC_DRV_EFI=y
|
||||
|
||||
# not arm64
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
CONFIG_HW_RANDOM_XGENE=m
|
||||
CONFIG_GPIO_XGENE=y
|
||||
|
||||
# busted build for various reasons
|
||||
# uses pci_* for some reason to allocate DMA buffers
|
||||
|
@ -120,7 +116,6 @@ CONFIG_NET_SB1000=y
|
|||
CONFIG_SBSAUART_TTY=y
|
||||
CONFIG_I2C_SCMI=m
|
||||
CONFIG_SENSORS_ACPI_POWER=m
|
||||
CONFIG_IMX_THERMAL=m
|
||||
CONFIG_PWM_LPSS=m
|
||||
CONFIG_ACPI=y
|
||||
CONFIG_ACPI_PROCFS_POWER=y
|
||||
|
@ -133,8 +128,17 @@ CONFIG_ACPI_CONTAINER=y
|
|||
CONFIG_ACPI_HED=m
|
||||
CONFIG_ACPI_CUSTOM_METHOD=m
|
||||
|
||||
CONFIG_AMD_XGBE=y
|
||||
CONFIG_AMD_XGBE_PHY=y
|
||||
CONFIG_AMD_XGBE=m
|
||||
CONFIG_AMD_XGBE_PHY=m
|
||||
# CONFIG_AMD_XGBE_DCB is not set
|
||||
|
||||
# CONFIG_IMX_THERMAL is not set
|
||||
|
||||
# still? 2014-11-11
|
||||
# CONFIG_BPF_JIT is not set
|
||||
|
||||
CONFIG_DMI=y
|
||||
CONFIG_DMIID=y
|
||||
CONFIG_DMI_SYSFS=y
|
||||
|
||||
CONFIG_SATA_AHCI_PLATFORM=y
|
||||
|
|
58
config-armv7
58
config-armv7
|
@ -65,6 +65,7 @@ CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB=m
|
|||
CONFIG_USB_EHCI_HCD_ORION=m
|
||||
CONFIG_MMC_SDHCI_PXAV3=m
|
||||
CONFIG_MVPP2=m
|
||||
CONFIG_COMMON_CLK_SI5351=m
|
||||
# CONFIG_CACHE_FEROCEON_L2 is not set
|
||||
# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
|
||||
|
||||
|
@ -164,6 +165,7 @@ CONFIG_RTC_DRV_PALMAS=m
|
|||
CONFIG_OMAP5_DSS_HDMI=y
|
||||
CONFIG_OMAP5_DSS_HDMI_AUDIO=y
|
||||
CONFIG_COMMON_CLK_PALMAS=m
|
||||
CONFIG_INPUT_PALMAS_PWRBUTTON=m
|
||||
|
||||
CONFIG_WL_TI=y
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
|
@ -184,10 +186,9 @@ CONFIG_INPUT_TWL4030_VIBRA=m
|
|||
CONFIG_INPUT_TWL6040_VIBRA=m
|
||||
CONFIG_KEYBOARD_OMAP4=m
|
||||
CONFIG_KEYBOARD_TWL4030=m
|
||||
CONFIG_LEDS_TCA6507=m
|
||||
|
||||
# OMAP thermal temp. Can likely be built as module but doesn't autoload so build in to ensure performance on PandaES
|
||||
CONFIG_TI_SOC_THERMAL=y
|
||||
CONFIG_TI_THERMAL=y
|
||||
# OMAP thermal temp.
|
||||
CONFIG_OMAP4_THERMAL=y
|
||||
CONFIG_OMAP5_THERMAL=y
|
||||
|
||||
|
@ -249,9 +250,6 @@ CONFIG_VIDEO_OMAP3=m
|
|||
# The ones below are for TI Davinci
|
||||
# CONFIG_VIDEO_DM6446_CCDC is not set
|
||||
# CONFIG_VIDEO_DM355_CCDC is not set
|
||||
# Also enable vivi driver - useful for testing a full kernelspace V4L2 driver
|
||||
CONFIG_V4L_TEST_DRIVERS=y
|
||||
CONFIG_VIDEO_VIVI=m
|
||||
|
||||
CONFIG_SND_OMAP_SOC=m
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=m
|
||||
|
@ -267,6 +265,7 @@ CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
|
|||
CONFIG_SND_OMAP_SOC_RX51=m
|
||||
CONFIG_SND_SOC_TLV320AIC23=m
|
||||
CONFIG_SND_SOC_TLV320AIC3X=m
|
||||
CONFIG_SND_SOC_TPA6130A2=m
|
||||
CONFIG_SND_SOC_TWL4030=m
|
||||
CONFIG_SND_SOC_TWL6040=m
|
||||
CONFIG_SND_SOC_PCM1792A=m
|
||||
|
@ -321,10 +320,16 @@ CONFIG_ARCH_MSM8960=y
|
|||
CONFIG_ARCH_MSM8974=y
|
||||
CONFIG_SERIAL_MSM=y
|
||||
CONFIG_SERIAL_MSM_CONSOLE=y
|
||||
CONFIG_SERIAL_MSM_HS=m
|
||||
CONFIG_PINCTRL_APQ8064=m
|
||||
CONFIG_PINCTRL_APQ8084=m
|
||||
CONFIG_PINCTRL_IPQ8064=m
|
||||
CONFIG_PINCTRL_MSM8960=m
|
||||
CONFIG_PINCTRL_MSM8X74=m
|
||||
CONFIG_COMMON_CLK_QCOM=m
|
||||
CONFIG_MFD_QCOM_RPM=m
|
||||
CONFIG_MFD_PM8921_CORE=m
|
||||
CONFIG_REGULATOR_QCOM_RPM=m
|
||||
CONFIG_APQ_GCC_8084=m
|
||||
CONFIG_APQ_MMCC_8084=m
|
||||
CONFIG_IPQ_GCC_806X=m
|
||||
|
@ -340,16 +345,24 @@ CONFIG_GPIO_MSM_V2=m
|
|||
CONFIG_POWER_RESET_MSM=y
|
||||
CONFIG_USB_MSM_OTG=m
|
||||
CONFIG_MMC_SDHCI_MSM=m
|
||||
CONFIG_MMC_QCOM_DML=m
|
||||
CONFIG_QCOM_BAM_DMA=m
|
||||
CONFIG_QCOM_GSBI=m
|
||||
CONFIG_PHY_QCOM_APQ8064_SATA=m
|
||||
CONFIG_PHY_QCOM_IPQ806X_SATA=m
|
||||
CONFIG_USB_DWC3_QCOM=m
|
||||
CONFIG_CRYPTO_DEV_QCE=m
|
||||
CONFIG_MSM_IOMMU=y
|
||||
CONFIG_DRM_MSM=m
|
||||
CONFIG_DRM_MSM_FBDEV=y
|
||||
CONFIG_USB_EHCI_MSM=m
|
||||
CONFIG_MFD_PM8XXX=m
|
||||
CONFIG_KEYBOARD_PMIC8XXX=m
|
||||
CONFIG_INPUT_PM8XXX_VIBRATOR=m
|
||||
CONFIG_INPUT_PMIC8XXX_PWRKEY=m
|
||||
CONFIG_RTC_DRV_PM8XXX=m
|
||||
# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
|
||||
CONFIG_QCOM_WDT=m
|
||||
|
||||
# i.MX
|
||||
# CONFIG_MXC_DEBUG_BOARD is not set
|
||||
|
@ -400,6 +413,7 @@ CONFIG_RTC_DRV_SNVS=m
|
|||
# CONFIG_FB_IMX is not set
|
||||
|
||||
CONFIG_SND_IMX_SOC=m
|
||||
CONFIG_SND_SOC_FSL_ASOC_CARD=m
|
||||
CONFIG_SND_SOC_FSL_ASRC=m
|
||||
CONFIG_SND_SOC_FSL_ESAI=m
|
||||
CONFIG_SND_SOC_FSL_SAI=m
|
||||
|
@ -408,14 +422,21 @@ CONFIG_SND_SOC_FSL_SSI=m
|
|||
CONFIG_SND_SOC_FSL_UTILS=m
|
||||
CONFIG_SND_SOC_IMX_SSI=m
|
||||
CONFIG_SND_SOC_IMX_AUDMUX=m
|
||||
CONFIG_SND_SOC_IMX_ES8328=m
|
||||
CONFIG_SND_SOC_IMX_PCM_FIQ=m
|
||||
CONFIG_SND_SOC_IMX_PCM_DMA=m
|
||||
CONFIG_SND_SOC_IMX_SGTL5000=m
|
||||
CONFIG_SND_SOC_IMX_WM8962=m
|
||||
CONFIG_SND_SOC_IMX_MC13783=m
|
||||
CONFIG_SND_SOC_IMX_SPDIF=m
|
||||
CONFIG_SND_SOC_CS42XX8_I2C=m
|
||||
CONFIG_SND_SOC_ES8328=m
|
||||
CONFIG_SND_SOC_ES8328_I2C=m
|
||||
CONFIG_SND_SOC_ES8328_SPI=m
|
||||
CONFIG_SND_SOC_EUKREA_TLV320=m
|
||||
CONFIG_SND_SOC_SGTL5000=m
|
||||
CONFIG_SND_SOC_WM8731=m
|
||||
CONFIG_SND_SOC_WM8962=m
|
||||
|
||||
CONFIG_USB_IMX21_HCD=m
|
||||
CONFIG_USB_MXS_PHY=m
|
||||
|
@ -480,12 +501,26 @@ CONFIG_REGULATOR_DA9055=m
|
|||
CONFIG_ARCH_EXYNOS4=y
|
||||
CONFIG_SOC_EXYNOS4212=y
|
||||
CONFIG_SOC_EXYNOS4412=y
|
||||
CONFIG_ARM_EXYNOS4210_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS4X12_CPUFREQ=y
|
||||
CONFIG_AK8975=m
|
||||
CONFIG_CM36651=m
|
||||
CONFIG_KEYBOARD_SAMSUNG=m
|
||||
|
||||
# Rockchips
|
||||
CONFIG_I2C_RK3X=m
|
||||
CONFIG_SPI_ROCKCHIP=m
|
||||
CONFIG_SND_SOC_ROCKCHIP=m
|
||||
CONFIG_PWM_ROCKCHIP=m
|
||||
CONFIG_ROCKCHIP_SARADC=m
|
||||
CONFIG_ROCKCHIP_IODOMAIN=m
|
||||
CONFIG_MMC_DW_ROCKCHIP=m
|
||||
CONFIG_EMAC_ROCKCHIP=m
|
||||
CONFIG_MFD_RK808=m
|
||||
CONFIG_COMMON_CLK_RK808=m
|
||||
CONFIG_REGULATOR_RK808=m
|
||||
CONFIG_RTC_DRV_HYM8563=m
|
||||
CONFIG_ROCKCHIP_SARADC=m
|
||||
|
||||
# ST Ericsson
|
||||
CONFIG_MACH_HREFV60=y
|
||||
|
@ -508,6 +543,8 @@ CONFIG_AHCI_ST=m
|
|||
CONFIG_INPUT_AB8500_PONKEY=m
|
||||
CONFIG_REGULATOR_AB8500=y
|
||||
CONFIG_AB8500_USB=m
|
||||
CONFIG_USB_MUSB_UX500=m
|
||||
CONFIG_USB_UX500_DMA=y
|
||||
CONFIG_RTC_DRV_AB8500=m
|
||||
CONFIG_PWM_AB8500=m
|
||||
CONFIG_SND_SOC_UX500=m
|
||||
|
@ -572,19 +609,18 @@ CONFIG_RTC_DRV_TPS6586X=m
|
|||
CONFIG_SERIO_OLPC_APSP=m
|
||||
|
||||
# Zynq-7xxx
|
||||
# likely needs usb still
|
||||
CONFIG_SERIAL_UARTLITE=y
|
||||
CONFIG_SERIAL_UARTLITE_CONSOLE=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
|
||||
CONFIG_COMMON_CLK_AXI_CLKGEN=m
|
||||
CONFIG_COMMON_CLK_SI570=m
|
||||
CONFIG_ARM_ZYNQ_CPUIDLE=y
|
||||
CONFIG_LATTICE_ECP3_CONFIG=m
|
||||
CONFIG_NET_VENDOR_XILINX=y
|
||||
CONFIG_XILINX_EMACLITE=m
|
||||
CONFIG_GPIO_XILINX=y
|
||||
# Broken
|
||||
# CONFIG_GPIO_ZYNQ is not set
|
||||
CONFIG_GPIO_ZYNQ=m
|
||||
CONFIG_I2C_XILINX=m
|
||||
CONFIG_SPI_XILINX=m
|
||||
CONFIG_SPI_CADENCE=m
|
||||
|
@ -600,6 +636,10 @@ CONFIG_XILLYBUS=m
|
|||
CONFIG_XILLYBUS_PCIE=m
|
||||
CONFIG_XILLYBUS_OF=m
|
||||
CONFIG_GS_FPGABOOT=m
|
||||
CONFIG_USB_GADGET_XILINX=m
|
||||
CONFIG_PCIE_XILINX=y
|
||||
CONFIG_CADENCE_WATCHDOG=m
|
||||
CONFIG_REGULATOR_ISL9305=m
|
||||
|
||||
# Multi function devices
|
||||
CONFIG_MFD_88PM800=m
|
||||
|
|
|
@ -61,6 +61,7 @@ CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
|
|||
# CONFIG_ARCH_HI3xxx is not set
|
||||
# CONFIG_ARCH_HISI is not set
|
||||
# CONFIG_ARCH_MEDIATEK is not set
|
||||
# CONFIG_ARCH_MESON is not set
|
||||
# CONFIG_ARCH_QCOM is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHMOBILE_MULTI is not set
|
||||
|
@ -112,11 +113,17 @@ CONFIG_SCHED_SMT=y
|
|||
|
||||
CONFIG_RCU_FANOUT=32
|
||||
|
||||
# Power management / thermal / cpu scaling
|
||||
CONFIG_CPU_IDLE=y
|
||||
# CONFIG_CPU_IDLE_GOV_LADDER is not set
|
||||
CONFIG_CPU_IDLE_GOV_MENU=y
|
||||
# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
|
||||
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
CONFIG_ARM_PSCI=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_CPUFREQ_DT=y
|
||||
# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
|
||||
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
|
||||
|
@ -188,6 +195,7 @@ CONFIG_REGULATOR_AXP20X=m
|
|||
CONFIG_IR_SUNXI=m
|
||||
CONFIG_MDIO_SUN4I=m
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
CONFIG_RTC_DRV_SUN6I=m
|
||||
|
||||
# Exynos
|
||||
CONFIG_ARCH_EXYNOS3=y
|
||||
|
@ -202,8 +210,6 @@ CONFIG_SOC_EXYNOS5410=y
|
|||
CONFIG_SOC_EXYNOS5800=y
|
||||
CONFIG_SERIAL_SAMSUNG=y
|
||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||
CONFIG_ARM_EXYNOS4210_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS4X12_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS5250_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS5440_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS_CPU_FREQ_BOOST_SW=y
|
||||
|
@ -215,6 +221,7 @@ CONFIG_I2C_S3C2410=m
|
|||
CONFIG_SPI_S3C64XX=m
|
||||
CONFIG_EXYNOS_THERMAL=m
|
||||
CONFIG_EXYNOS_THERMAL_CORE=y
|
||||
CONFIG_EXYNOS_ADC=m
|
||||
CONFIG_MMC_SDHCI_S3C=m
|
||||
CONFIG_MMC_SDHCI_S3C_DMA=y
|
||||
CONFIG_MMC_DW_EXYNOS=m
|
||||
|
@ -234,6 +241,9 @@ CONFIG_REGULATOR_S2MPS11=m
|
|||
CONFIG_REGULATOR_S5M8767=m
|
||||
CONFIG_TCG_TIS_I2C_INFINEON=m
|
||||
CONFIG_RTC_DRV_S5M=m
|
||||
CONFIG_MFD_WM8994=m
|
||||
CONFIG_GPIO_WM8994=m
|
||||
CONFIG_REGULATOR_WM8994=m
|
||||
# CONFIG_RTC_DRV_S3C is not set
|
||||
|
||||
CONFIG_EXYNOS_VIDEO=y
|
||||
|
@ -254,7 +264,14 @@ CONFIG_DRM_EXYNOS_ROTATOR=y
|
|||
CONFIG_DRM_EXYNOS_VIDI=y
|
||||
CONFIG_PHY_EXYNOS_DP_VIDEO=m
|
||||
# CONFIG_FB_S3C is not set
|
||||
# CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS is not set
|
||||
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
|
||||
CONFIG_PHY_EXYNOS_DP_VIDEO=m
|
||||
CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS=y
|
||||
CONFIG_VIDEO_EXYNOS_FIMC_LITE=m
|
||||
CONFIG_VIDEO_EXYNOS4_FIMC_IS=m
|
||||
CONFIG_VIDEO_EXYNOS4_ISP_DMA_CAPTURE=y
|
||||
CONFIG_VIDEO_S5P_FIMC=m
|
||||
CONFIG_VIDEO_S5P_MIPI_CSIS=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_G2D=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
|
||||
|
@ -267,11 +284,10 @@ CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994=m
|
|||
CONFIG_SND_SOC_SMDK_WM8994_PCM=m
|
||||
CONFIG_SND_SOC_SNOW=m
|
||||
CONFIG_SND_SOC_ODROIDX2=m
|
||||
# CONFIG_GPIO_WM8994 is not set
|
||||
# CONFIG_REGULATOR_WM8994 is not set
|
||||
# CONFIG_EXYNOS_IOMMU_DEBUG is not set
|
||||
# CONFIG_SAMSUNG_PM_DEBUG is not set
|
||||
# CONFIG_SAMSUNG_PM_CHECK is not set
|
||||
# CONFIG_ARM_EXYNOS5_BUS_DEVFREQ is not set
|
||||
|
||||
# Arndale/Origen
|
||||
CONFIG_MFD_MAX8997=y
|
||||
|
@ -281,12 +297,15 @@ CONFIG_REGULATOR_MAX77686=m
|
|||
CONFIG_REGULATOR_S2MPA01=m
|
||||
CONFIG_REGULATOR_S5M8767=m
|
||||
CONFIG_COMMON_CLK_MAX77686=m
|
||||
CONFIG_COMMON_CLK_MAX77802=m
|
||||
CONFIG_COMMON_CLK_S2MPS11=m
|
||||
CONFIG_INPUT_MAX8997_HAPTIC=m
|
||||
CONFIG_CHARGER_MAX8997=m
|
||||
CONFIG_LEDS_MAX8997=m
|
||||
CONFIG_RTC_DRV_MAX8997=m
|
||||
CONFIG_RTC_DRV_MAX77686=m
|
||||
CONFIG_RTC_DRV_MAX77802=m
|
||||
CONFIG_RTC_DRV_RK808=m
|
||||
CONFIG_EXTCON_MAX8997=m
|
||||
|
||||
# Tegra
|
||||
|
@ -333,6 +352,10 @@ CONFIG_MFD_AS3722=y
|
|||
CONFIG_REGULATOR_AS3722=m
|
||||
CONFIG_RTC_DRV_AS3722=y
|
||||
|
||||
# TI Generic
|
||||
CONFIG_TI_SOC_THERMAL=m
|
||||
CONFIG_TI_THERMAL=y
|
||||
|
||||
# DRM panels
|
||||
CONFIG_DRM_PANEL=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=m
|
||||
|
@ -350,12 +373,10 @@ CONFIG_REGMAP_IRQ=y
|
|||
# Power management
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
CONFIG_GENERIC_CPUFREQ_CPU0=m
|
||||
|
||||
# usb
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=m
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=m
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
CONFIG_USB_ULPI=y
|
||||
CONFIG_AX88796=m
|
||||
|
@ -366,6 +387,7 @@ CONFIG_USB_OTG=y
|
|||
CONFIG_USB_GADGET=m
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=100
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
# CONFIG_USB_GADGET_XILINX is not set
|
||||
CONFIG_USB_MUSB_HDRC=m
|
||||
CONFIG_USB_MUSB_DUAL_ROLE=y
|
||||
CONFIG_USB_MUSB_DSPS=m
|
||||
|
@ -435,20 +457,20 @@ CONFIG_GENERIC_PINCONF=y
|
|||
# CONFIG_PINCTRL_MSM8X74 is not set
|
||||
# CONFIG_PINCTRL_BCM281XX is not set
|
||||
# CONFIG_PINCTRL_APQ8064 is not set
|
||||
# CONFIG_PINCTRL_APQ8084 is not set
|
||||
# CONFIG_PINCTRL_IPQ8064 is not set
|
||||
# CONFIG_PINCTRL_MSM8960 is not set
|
||||
|
||||
# GPIO
|
||||
# CONFIG_GPIO_EM is not set
|
||||
CONFIG_GPIO_74X164=m
|
||||
CONFIG_GPIO_ADNP=m
|
||||
CONFIG_GPIO_MCP23S08=m
|
||||
CONFIG_GPIO_MAX7301=m
|
||||
CONFIG_GPIO_MC33880=m
|
||||
CONFIG_GPIO_TPS65910=y
|
||||
CONFIG_GPIO_TPS65912=m
|
||||
# CONFIG_GPIO_ZEVIO is not set
|
||||
CONFIG_LEDS_GPIO=m
|
||||
CONFIG_LEDS_GPIO_REGISTER=y
|
||||
CONFIG_MDIO_BUS_MUX=m
|
||||
CONFIG_MDIO_BUS_MUX_GPIO=m
|
||||
CONFIG_MDIO_BUS_MUX_MMIOREG=m
|
||||
|
@ -457,6 +479,7 @@ CONFIG_INPUT_GPIO_BEEPER=m
|
|||
CONFIG_INPUT_GPIO_TILT_POLLED=m
|
||||
CONFIG_INPUT_MATRIXKMAP=m
|
||||
CONFIG_KEYBOARD_GPIO=m
|
||||
CONFIG_KEYBOARD_GPIO_POLLED=m
|
||||
CONFIG_KEYBOARD_MATRIX=m
|
||||
# CONFIG_GPIO_RCAR is not set
|
||||
CONFIG_W1_MASTER_GPIO=m
|
||||
|
@ -503,10 +526,6 @@ CONFIG_EDAC_LEGACY_SYSFS=y
|
|||
|
||||
# Watchdog
|
||||
|
||||
# Thermal / powersaving
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_ARM_PSCI=y
|
||||
|
||||
# Mailbox
|
||||
CONFIG_MAILBOX=y
|
||||
|
||||
|
@ -531,6 +550,7 @@ CONFIG_MTD_NAND_PXA3xx=m
|
|||
CONFIG_MTD_NAND_RICOH=m
|
||||
CONFIG_MTD_NAND_TMIO=m
|
||||
CONFIG_MTD_SPI_NOR=m
|
||||
# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
|
||||
CONFIG_MTD_SPINAND_MT29F=m
|
||||
CONFIG_MTD_SPINAND_ONDIEECC=y
|
||||
CONFIG_MTD_SST25L=m
|
||||
|
@ -549,6 +569,8 @@ CONFIG_SPI_DW_MMIO=m
|
|||
CONFIG_SPI_DW_PCI=m
|
||||
# CONFIG_MMC_DW_IDMAC is not set
|
||||
# CONFIG_MMC_DW_K3 is not set
|
||||
# CONFIG_MMC_QCOM_DML is not set
|
||||
# CONFIG_MMC_DW_ROCKCHIP is not set
|
||||
CONFIG_USB_DWC2=y
|
||||
CONFIG_USB_DWC2_HOST=m
|
||||
CONFIG_USB_DWC2_PLATFORM=y
|
||||
|
@ -561,6 +583,7 @@ CONFIG_USB_DWC3_OMAP=m
|
|||
CONFIG_USB_DWC3_PCI=m
|
||||
# CONFIG_USB_DWC3_DEBUG is not set
|
||||
# CONFIG_USB_DWC3_KEYSTONE is not set
|
||||
# CONFIG_USB_DWC3_QCOM is not set
|
||||
# CONFIG_DWC3_HOST_USB3_LPM_ENABLE is not set
|
||||
CONFIG_DW_WATCHDOG=m
|
||||
CONFIG_PCIE_DW=y
|
||||
|
@ -623,10 +646,18 @@ CONFIG_SND_SOC_SPDIF=m
|
|||
# CONFIG_SND_SOC_ALC5623 is not set
|
||||
# CONFIG_SND_SOC_CS42L56 is not set
|
||||
# CONFIG_SND_SOC_STA350 is not set
|
||||
# CONFIG_SND_SOC_CS35L32 is not set
|
||||
# CONFIG_SND_SOC_ES8328 is not set
|
||||
# CONFIG_SND_SOC_SSM2602_SPI is not set
|
||||
# CONFIG_SND_SOC_SSM2602_I2C is not set
|
||||
# CONFIG_SND_SOC_SSM4567 is not set
|
||||
# CONFIG_SND_SOC_WM8978 is not set
|
||||
# CONFIG_SND_ATMEL_SOC is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC31XX is not set
|
||||
# CONFIG_SND_SOC_TAS2552 is not set
|
||||
# CONFIG_SND_SOC_CS4265 is not set
|
||||
# CONFIG_SND_SOC_IMX_ES8328 is not set
|
||||
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
|
||||
# CONFIG_SND_EDMA_SOC is not set
|
||||
# CONFIG_SND_SOC_ROCKCHIP is not set
|
||||
|
||||
|
@ -687,7 +718,11 @@ CONFIG_REGULATOR_TPS80031=m
|
|||
CONFIG_REGULATOR_LTC3589=m
|
||||
CONFIG_REGULATOR_ANATOP=m
|
||||
CONFIG_REGULATOR_DA9211=m
|
||||
CONFIG_REGULATOR_ISL9305=m
|
||||
CONFIG_REGULATOR_MAX77802=m
|
||||
CONFIG_REGULATOR_PWM=m
|
||||
|
||||
CONFIG_POWER_AVS=y
|
||||
CONFIG_CHARGER_MANAGER=y
|
||||
CONFIG_CHARGER_BQ2415X=m
|
||||
CONFIG_CHARGER_BQ24190=m
|
||||
|
@ -696,6 +731,7 @@ CONFIG_CHARGER_GPIO=m
|
|||
CONFIG_CHARGER_TPS65090=m
|
||||
CONFIG_PDA_POWER=m
|
||||
CONFIG_GENERIC_ADC_BATTERY=m
|
||||
CONFIG_BATTERY_SBS=m
|
||||
|
||||
# Sensors
|
||||
CONFIG_TMP006=m
|
||||
|
@ -707,6 +743,8 @@ CONFIG_SENSORS_ADCXX=m
|
|||
CONFIG_SENSORS_ADS7871=m
|
||||
CONFIG_SENSORS_GPIO_FAN=m
|
||||
CONFIG_SENSORS_HTU21=m
|
||||
CONFIG_SENSORS_ISL29018=m
|
||||
CONFIG_SENSORS_ISL29028=m
|
||||
CONFIG_SENSORS_LIS3_SPI=m
|
||||
CONFIG_SENSORS_LM70=m
|
||||
CONFIG_SENSORS_MAX1111=m
|
||||
|
@ -735,8 +773,10 @@ CONFIG_TOUCHSCREEN_AD7877=m
|
|||
CONFIG_TOUCHSCREEN_MC13783=m
|
||||
CONFIG_TOUCHSCREEN_TSC2005=m
|
||||
|
||||
CONFIG_LEDS_TRIGGER_CPU=y
|
||||
CONFIG_LEDS_DAC124S085=m
|
||||
CONFIG_LEDS_PWM=m
|
||||
CONFIG_LEDS_SYSCON=y
|
||||
CONFIG_BMP085_SPI=m
|
||||
|
||||
CONFIG_SRAM=y
|
||||
|
@ -784,9 +824,6 @@ CONFIG_MFD_CROS_EC_SPI=m
|
|||
CONFIG_KEYBOARD_CROS_EC=m
|
||||
CONFIG_I2C_CROS_EC_TUNNEL=m
|
||||
|
||||
# Should be in generic
|
||||
CONFIG_BPF_JIT=y
|
||||
|
||||
# Needs work/investigation
|
||||
# CONFIG_ARM_KPROBES_TEST is not set
|
||||
|
||||
|
|
|
@ -62,7 +62,8 @@ CONFIG_POWER_RESET_KEYSTONE=y
|
|||
CONFIG_DAVINCI_WATCHDOG=m
|
||||
CONFIG_SPI_DAVINCI=m
|
||||
CONFIG_TI_DAVINCI_MDIO=m
|
||||
# CONFIG_TI_SOC_THERMAL is not set
|
||||
CONFIG_KEYSTONE_IRQ=m
|
||||
CONFIG_PCI_KEYSTONE=y
|
||||
|
||||
# Tegra (non A15 device options)
|
||||
# CONFIG_ARCH_TEGRA_2x_SOC is not set
|
||||
|
|
110
config-generic
110
config-generic
|
@ -391,6 +391,7 @@ CONFIG_VHOST_SCSI=m
|
|||
# SCSI device support
|
||||
#
|
||||
CONFIG_SCSI=y
|
||||
# CONFIG_SCSI_MQ_DEFAULT is not set
|
||||
|
||||
CONFIG_SCSI_ENCLOSURE=m
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
@ -705,11 +706,11 @@ CONFIG_FIREWIRE_NOSY=m
|
|||
#
|
||||
CONFIG_NET=y
|
||||
|
||||
CONFIG_NET_DMA=y
|
||||
|
||||
CONFIG_NETLINK_MMAP=y
|
||||
CONFIG_NETLINK_DIAG=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
CONFIG_TCP_CONG_BIC=m
|
||||
CONFIG_TCP_CONG_CUBIC=y
|
||||
|
@ -717,6 +718,7 @@ CONFIG_TCP_CONG_HTCP=m
|
|||
CONFIG_TCP_CONG_HSTCP=m
|
||||
CONFIG_TCP_CONG_HYBLA=m
|
||||
CONFIG_TCP_CONG_ILLINOIS=m
|
||||
CONFIG_TCP_CONG_DCTCP=m
|
||||
CONFIG_TCP_CONG_LP=m
|
||||
CONFIG_TCP_CONG_SCALABLE=m
|
||||
CONFIG_TCP_CONG_VEGAS=m
|
||||
|
@ -758,6 +760,8 @@ CONFIG_IP_PIMSM_V1=y
|
|||
CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_GENEVE=m
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
|
@ -776,6 +780,7 @@ CONFIG_IP_VS_PROTO_UDP=y
|
|||
CONFIG_IP_VS_PROTO_ESP=y
|
||||
CONFIG_IP_VS_PROTO_AH=y
|
||||
CONFIG_IP_VS_PROTO_SCTP=y
|
||||
CONFIG_IP_VS_FO=m
|
||||
CONFIG_IP_VS_IPV6=y
|
||||
CONFIG_IP_VS_RR=m
|
||||
CONFIG_IP_VS_WRR=m
|
||||
|
@ -1017,12 +1022,16 @@ CONFIG_NFT_HASH=m
|
|||
CONFIG_NFT_COUNTER=m
|
||||
CONFIG_NFT_LOG=m
|
||||
CONFIG_NFT_LIMIT=m
|
||||
CONFIG_NFT_MASQ=m
|
||||
CONFIG_NFT_MASQ_IPV4=m
|
||||
CONFIG_NFT_MASQ_IPV6=m
|
||||
CONFIG_NFT_NAT=m
|
||||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
|
||||
CONFIG_NF_TABLES_IPV4=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
|
||||
CONFIG_NFT_CHAIN_NAT_IPV4=m
|
||||
|
@ -1082,6 +1091,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
|
|||
CONFIG_IP_SET_HASH_IPPORT=m
|
||||
CONFIG_IP_SET_HASH_IPPORTIP=m
|
||||
CONFIG_IP_SET_HASH_IPPORTNET=m
|
||||
CONFIG_IP_SET_HASH_MAC=m
|
||||
CONFIG_IP_SET_HASH_NETPORTNET=m
|
||||
CONFIG_IP_SET_HASH_NET=m
|
||||
CONFIG_IP_SET_HASH_NETNET=m
|
||||
|
@ -1207,6 +1217,7 @@ CONFIG_BATMAN_ADV_MCAST=y
|
|||
CONFIG_OPENVSWITCH=m
|
||||
CONFIG_OPENVSWITCH_GRE=y
|
||||
CONFIG_OPENVSWITCH_VXLAN=y
|
||||
CONFIG_OPENVSWITCH_GENEVE=y
|
||||
CONFIG_VSOCKETS=m
|
||||
|
||||
|
||||
|
@ -1306,6 +1317,8 @@ CONFIG_ETHERNET=y
|
|||
CONFIG_NET_VENDOR_ADAPTEC=y
|
||||
CONFIG_ADAPTEC_STARFIRE=m
|
||||
|
||||
# CONFIG_NET_VENDOR_AGERE is not set
|
||||
|
||||
CONFIG_NET_VENDOR_ALTEON=y
|
||||
CONFIG_ACENIC=m
|
||||
# CONFIG_ACENIC_OMIT_TIGON_I is not set
|
||||
|
@ -1321,6 +1334,7 @@ CONFIG_PCMCIA_NMCLAN=m
|
|||
|
||||
CONFIG_NET_VENDOR_ARC=y
|
||||
CONFIG_ARC_EMAC=m
|
||||
# CONFIG_EMAC_ROCKCHIP is not set
|
||||
|
||||
CONFIG_NET_VENDOR_ATHEROS=y
|
||||
CONFIG_ALX=m
|
||||
|
@ -1402,7 +1416,8 @@ CONFIG_I40E=m
|
|||
# CONFIG_I40E_VXLAN is not set
|
||||
# CONFIG_I40E_DCB is not set
|
||||
CONFIG_I40EVF=m
|
||||
|
||||
CONFIG_FM10K=m
|
||||
# CONFIG_FM10K_VXLAN is not set
|
||||
|
||||
# CONFIG_NET_VENDOR_I825XX is not set
|
||||
CONFIG_NET_VENDOR_MARVELL=y
|
||||
|
@ -1454,6 +1469,8 @@ CONFIG_QLCNIC_HWMON=y
|
|||
CONFIG_QLGE=m
|
||||
CONFIG_NETXEN_NIC=m
|
||||
|
||||
# CONFIG_NET_VENDOR_QUALCOMM is not set
|
||||
|
||||
CONFIG_NET_VENDOR_REALTEK=y
|
||||
CONFIG_ATP=m
|
||||
CONFIG_8139CP=m
|
||||
|
@ -1526,6 +1543,7 @@ CONFIG_DAVICOM_PHY=m
|
|||
CONFIG_DP83640_PHY=m
|
||||
CONFIG_FIXED_PHY=y
|
||||
CONFIG_MDIO_BITBANG=m
|
||||
CONFIG_MDIO_BCM_UNIMAC=m
|
||||
CONFIG_NATIONAL_PHY=m
|
||||
CONFIG_ICPLUS_PHY=m
|
||||
CONFIG_BCM63XX_PHY=m
|
||||
|
@ -1652,11 +1670,14 @@ CONFIG_ATH9K_BTCOEX_SUPPORT=y
|
|||
# CONFIG_ATH9K_HTC_DEBUGFS is not set
|
||||
# CONFIG_ATH9K_STATION_STATISTICS is not set
|
||||
# CONFIG_ATH9K_WOW is not set
|
||||
# CONFIG_ATH9K_DYNACK is not set
|
||||
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
|
||||
#
|
||||
CONFIG_ATH10K=m
|
||||
CONFIG_ATH10K_PCI=m
|
||||
# CONFIG_ATH10K_DEBUG is not set
|
||||
# CONFIG_ATH10K_TRACING is not set
|
||||
# CONFIG_ATH_TRACEPOINTS is not set
|
||||
CONFIG_ATH10K_DEBUGFS=y
|
||||
CONFIG_WCN36XX=m
|
||||
# CONFIG_WCN36XX_DEBUGFS is not set
|
||||
|
@ -1723,12 +1744,15 @@ CONFIG_LIBERTAS_SDIO=m
|
|||
# CONFIG_LIBERTAS_THINFIRM is not set
|
||||
# CONFIG_LIBERTAS_SPI is not set
|
||||
CONFIG_LIBERTAS_MESH=y
|
||||
|
||||
CONFIG_IWLWIFI=m
|
||||
CONFIG_IWLDVM=m
|
||||
CONFIG_IWLMVM=m
|
||||
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
|
||||
# CONFIG_IWLWIFI_UAPSD is not set
|
||||
CONFIG_IWLWIFI_DEBUG=y
|
||||
CONFIG_IWLWIFI_DEBUGFS=y
|
||||
|
||||
CONFIG_IWLEGACY=m
|
||||
CONFIG_IWLEGACY_DEBUG=y
|
||||
CONFIG_IWLEGACY_DEBUGFS=y
|
||||
|
@ -1736,6 +1760,7 @@ CONFIG_IWL4965=y
|
|||
CONFIG_IWL3945=m
|
||||
# CONFIG_IWM is not set
|
||||
# CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE is not set
|
||||
|
||||
CONFIG_MAC80211_HWSIM=m
|
||||
CONFIG_P54_COMMON=m
|
||||
CONFIG_P54_USB=m
|
||||
|
@ -1792,9 +1817,11 @@ CONFIG_RTL8192CE=m
|
|||
CONFIG_RTL8192SE=m
|
||||
CONFIG_RTL8192CU=m
|
||||
CONFIG_RTL8192DE=m
|
||||
CONFIG_RTL8192EE=m
|
||||
CONFIG_RTL8723AE=m
|
||||
CONFIG_RTL8723BE=m
|
||||
CONFIG_RTL8188EE=m
|
||||
CONFIG_RTL8821AE=m
|
||||
|
||||
CONFIG_MWIFIEX=m
|
||||
CONFIG_MWIFIEX_SDIO=m
|
||||
|
@ -2118,6 +2145,8 @@ CONFIG_INPUT_SPARSEKMAP=m
|
|||
CONFIG_INPUT_CMA3000=m
|
||||
CONFIG_INPUT_CMA3000_I2C=m
|
||||
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
|
||||
# CONFIG_INPUT_DRV260X_HAPTICS is not set
|
||||
# CONFIG_INPUT_DRV2667_HAPTICS is not set
|
||||
|
||||
#
|
||||
# Input I/O drivers
|
||||
|
@ -2259,6 +2288,7 @@ CONFIG_TOUCHSCREEN_ZFORCE=m
|
|||
# CONFIG_TOUCHSCREEN_ADS7846 is not set
|
||||
# CONFIG_TOUCHSCREEN_AD7877 is not set
|
||||
# CONFIG_TOUCHSCREEN_TSC2005 is not set
|
||||
# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
|
||||
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_INPUT_PCSPKR=m
|
||||
|
@ -2617,8 +2647,10 @@ CONFIG_HID_SENSOR_IIO_TRIGGER=m
|
|||
# CONFIG_AD5380 is not set
|
||||
# CONFIG_AD5064 is not set
|
||||
# CONFIG_BMA180 is not set
|
||||
# CONFIG_BMC150_ACCEL is not set
|
||||
# CONFIG_MAX1363 is not set
|
||||
# CONFIG_MAX517 is not set
|
||||
# CONFIG_MAX5821 is not set
|
||||
# CONFIG_MCP4725 is not set
|
||||
# CONFIG_ITG3200 is not set
|
||||
# CONFIG_APDS9300 is not set
|
||||
|
@ -2632,10 +2664,9 @@ CONFIG_HID_SENSOR_IIO_TRIGGER=m
|
|||
# CONFIG_TSL4531 is not set
|
||||
# CONFIG_NAU7802 is not set
|
||||
# CONFIG_TI_ADC081C is not set
|
||||
# CONFIG_EXYNOS_ADC is not set
|
||||
# CONFIG_TI_ADC128S052 is not set
|
||||
# CONFIG_VIPERBOARD_ADC is not set
|
||||
# CONFIG_VF610_ADC is not set
|
||||
# CONFIG_XILINX_XADC is not set
|
||||
# CONFIG_INV_MPU6050_IIO is not set
|
||||
CONFIG_IIO_ST_GYRO_3AXIS=m
|
||||
CONFIG_IIO_ST_MAGN_3AXIS=m
|
||||
|
@ -2643,6 +2674,7 @@ CONFIG_IIO_ST_ACCEL_3AXIS=m
|
|||
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
|
||||
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
|
||||
# CONFIG_ADJD_S311 is not set
|
||||
# CONFIG_AL3320A is not set
|
||||
# CONFIG_SENSORS_TSL2563 is not set
|
||||
# CONFIG_SENSORS_HMC5843_I2C is not set
|
||||
# CONFIG_VCNL4000 is not set
|
||||
|
@ -2681,6 +2713,7 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m
|
|||
# CONFIG_ADIS16136 is not set
|
||||
# CONFIG_ADIS16260 is not set
|
||||
# CONFIG_ADXRS450 is not set
|
||||
# CONFIG_BMG160 is not set
|
||||
# CONFIG_ADIS16400 is not set
|
||||
# CONFIG_ADIS16480 is not set
|
||||
# CONFIG_DHT11 is not set
|
||||
|
@ -2688,7 +2721,7 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m
|
|||
# CONFIG_MPL115 is not set
|
||||
# CONFIG_SI7005 is not set
|
||||
# CONFIG_AS3935 is not set
|
||||
# CONFIG_KXCJK1013 is not set
|
||||
CONFIG_KXCJK1013=m
|
||||
# CONFIG_ISL29125 is not set
|
||||
# CONFIG_TCS3414 is not set
|
||||
# CONFIG_AK09911 is not set
|
||||
|
@ -2724,13 +2757,8 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m
|
|||
# CONFIG_AD7816 is not set
|
||||
# CONFIG_AD7192 is not set
|
||||
# CONFIG_AD7280 is not set
|
||||
# CONFIG_AD5930 is not set
|
||||
# CONFIG_AD9832 is not set
|
||||
# CONFIG_AD9834 is not set
|
||||
# CONFIG_AD9850 is not set
|
||||
# CONFIG_AD9852 is not set
|
||||
# CONFIG_AD9910 is not set
|
||||
# CONFIG_AD9951 is not set
|
||||
# CONFIG_ADIS16060 is not set
|
||||
# CONFIG_ADE7753 is not set
|
||||
# CONFIG_ADE7754 is not set
|
||||
|
@ -2859,6 +2887,7 @@ CONFIG_RTC_DRV_DS1742=m
|
|||
CONFIG_RTC_DRV_DS1374=m
|
||||
# CONFIG_RTC_DRV_EP93XX is not set
|
||||
CONFIG_RTC_DRV_FM3130=m
|
||||
# CONFIG_RTC_DRV_HYM8563 is not set
|
||||
CONFIG_RTC_DRV_ISL1208=m
|
||||
CONFIG_RTC_DRV_M41T80=m
|
||||
CONFIG_RTC_DRV_M41T80_WDT=y
|
||||
|
@ -2870,6 +2899,7 @@ CONFIG_RTC_DRV_PCF8563=m
|
|||
CONFIG_RTC_DRV_PCF8583=m
|
||||
CONFIG_RTC_DRV_RS5C372=m
|
||||
# CONFIG_RTC_DRV_SA1100 is not set
|
||||
# CONFIG_RTC_DRV_SNVS is not set
|
||||
# CONFIG_RTC_DRV_TEST is not set
|
||||
CONFIG_RTC_DRV_X1205=m
|
||||
CONFIG_RTC_DRV_PCF8523=m
|
||||
|
@ -3077,6 +3107,8 @@ CONFIG_VIDEO_TM6000_DVB=m
|
|||
CONFIG_VIDEO_TLG2300=m
|
||||
# CONFIG_VIDEO_TIMBERDALE is not set
|
||||
# CONFIG_VIDEO_M5MOLS is not set
|
||||
# CONFIG_VIDEO_TW68 is not set
|
||||
# CONFIG_VIDEO_VIVID is not set
|
||||
# CONFIG_EXYNOS_VIDEO is not set
|
||||
CONFIG_VIDEO_USBTV=m
|
||||
# CONFIG_VIDEO_AU0828_RC is not set
|
||||
|
@ -3117,6 +3149,7 @@ CONFIG_DVB_DYNAMIC_MINORS=y
|
|||
CONFIG_DVB_BT8XX=m
|
||||
CONFIG_DVB_BUDGET_CORE=m
|
||||
CONFIG_DVB_PLUTO2=m
|
||||
# CONFIG_DVB_PT3 is not set
|
||||
CONFIG_SMS_SIANO_MDTV=m
|
||||
CONFIG_SMS_SIANO_RC=y
|
||||
# CONFIG_SMS_SIANO_DEBUGFS is not set
|
||||
|
@ -3184,6 +3217,7 @@ CONFIG_DVB_USB_AZ6007=m
|
|||
CONFIG_DVB_USB_LME2510=m
|
||||
CONFIG_DVB_USB_RTL28XXU=m
|
||||
CONFIG_DVB_USB_AF9035=m
|
||||
CONFIG_DVB_USB_DVBSKY=m
|
||||
|
||||
CONFIG_DVB_PT1=m
|
||||
|
||||
|
@ -3229,6 +3263,7 @@ CONFIG_IR_IGUANA=m
|
|||
CONFIG_IR_TTUSBIR=m
|
||||
CONFIG_IR_GPIO_CIR=m
|
||||
CONFIG_IR_XMP_DECODER=m
|
||||
CONFIG_IR_HIX5HD2=m
|
||||
|
||||
CONFIG_V4L_MEM2MEM_DRIVERS=y
|
||||
# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
|
||||
|
@ -3499,7 +3534,7 @@ CONFIG_SND_FIREWIRE_SPEAKERS=m
|
|||
CONFIG_SND_ISIGHT=m
|
||||
CONFIG_SND_SCS1X=m
|
||||
CONFIG_SND_DICE=m
|
||||
# CONFIG_SND_FIREWORKS is not set
|
||||
CONFIG_SND_FIREWORKS=m
|
||||
# CONFIG_SND_BEBOB is not set
|
||||
|
||||
#
|
||||
|
@ -3619,6 +3654,7 @@ CONFIG_HID_ICADE=m
|
|||
CONFIG_HID_TWINHAN=m
|
||||
CONFIG_HID_ORTEK=m
|
||||
CONFIG_HID_PANTHERLORD=m
|
||||
CONFIG_HID_PENMOUNT=m
|
||||
CONFIG_HID_PETALYNX=m
|
||||
CONFIG_HID_PICOLCD=m
|
||||
CONFIG_HID_RMI=m
|
||||
|
@ -3733,6 +3769,7 @@ CONFIG_USB_S2255=m
|
|||
# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set
|
||||
CONFIG_USB_ZR364XX=m
|
||||
# CONFIG_SOC_CAMERA is not set
|
||||
# CONFIG_SOC_TI is not set
|
||||
|
||||
#
|
||||
# USB Network adaptors
|
||||
|
@ -3837,7 +3874,6 @@ CONFIG_USB_SERIAL_MCT_U232=m
|
|||
CONFIG_USB_SERIAL_MOS7720=m
|
||||
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
|
||||
# CONFIG_USB_SERIAL_WISHBONE is not set
|
||||
# CONFIG_USB_SERIAL_ZTE is not set
|
||||
CONFIG_USB_SERIAL_MOS7840=m
|
||||
# CONFIG_USB_SERIAL_MXUPORT is not set
|
||||
CONFIG_USB_SERIAL_NAVMAN=m
|
||||
|
@ -3881,14 +3917,10 @@ CONFIG_USB_PHY=y
|
|||
# CONFIG_USB_OTG_FSM is not set
|
||||
|
||||
# CONFIG_GENERIC_PHY is not set
|
||||
# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set
|
||||
# CONFIG_PHY_EXYNOS_DP_VIDEO is not set
|
||||
# CONFIG_PHY_ST_SPEAR1310_MIPHY is not set
|
||||
# CONFIG_PHY_ST_SPEAR1340_MIPHY is not set
|
||||
# CONFIG_AM335X_PHY_USB is not set
|
||||
# CONFIG_SAMSUNG_USBPHY is not set
|
||||
# CONFIG_SAMSUNG_USB2PHY is not set
|
||||
# CONFIG_SAMSUNG_USB3PHY is not set
|
||||
# CONFIG_BCM_KONA_USB2_PHY is not set
|
||||
# CONFIG_USB_RCAR_PHY is not set
|
||||
CONFIG_USB_ATM=m
|
||||
|
@ -3936,6 +3968,8 @@ CONFIG_USB_XUSBATM=m
|
|||
# CONFIG_USB_DWC2 is not set
|
||||
# CONFIG_USB_ISP1301 is not set
|
||||
# CONFIG_USB_OTG is not set
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
CONFIG_USB_LED_TRIG=y
|
||||
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
|
||||
|
@ -4013,6 +4047,10 @@ CONFIG_MFD_VIPERBOARD=m
|
|||
# CONFIG_MFD_TPS65912_SPI is not set
|
||||
# CONFIG_MFD_MC13XXX_SPI is not set
|
||||
# CONFIG_MFD_DA9052_SPI is not set
|
||||
# CONFIG_MFD_MENF21BMC is not set
|
||||
# CONFIG_MFD_HI6421_PMIC is not set
|
||||
# CONFIG_MFD_RK808 is not set
|
||||
# CONFIG_MFD_RN5T618 is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_INTEL_SOC_PMIC is not set
|
||||
|
||||
|
@ -4148,6 +4186,7 @@ CONFIG_9P_FSCACHE=y
|
|||
CONFIG_9P_FS_POSIX_ACL=y
|
||||
CONFIG_9P_FS_SECURITY=y
|
||||
CONFIG_FUSE_FS=m
|
||||
CONFIG_OVERLAY_FS=m
|
||||
# CONFIG_OMFS_FS is not set
|
||||
CONFIG_CUSE=m
|
||||
CONFIG_F2FS_FS=m
|
||||
|
@ -4452,6 +4491,7 @@ CONFIG_CRYPTO_MANAGER=y
|
|||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_CRYPTO_BLKCIPHER=y
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
# CONFIG_CRYPTO_MCRYPTD is not set
|
||||
CONFIG_CRYPTO_AES=y
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
|
@ -4630,6 +4670,7 @@ CONFIG_THERMAL_HWMON=y
|
|||
CONFIG_THERMAL_GOV_FAIR_SHARE=y
|
||||
# CONFIG_THERMAL_GOV_USER_SPACE is not set
|
||||
CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
# CONFIG_THERMAL_GOV_BANG_BANG is not set
|
||||
# CONFIG_THERMAL_EMULATION is not set
|
||||
# CONFIG_THERMAL_OF is not set
|
||||
# CONFIG_CPU_THERMAL is not set
|
||||
|
@ -4726,6 +4767,7 @@ CONFIG_LEDS_DELL_NETBOOKS=m
|
|||
# CONFIG_LEDS_PWM is not set
|
||||
# CONFIG_LEDS_LP8501 is not set
|
||||
# CONFIG_LEDS_PCA963X is not set
|
||||
# CONFIG_LEDS_SYSCON is not set
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=m
|
||||
CONFIG_LEDS_TRIGGER_ONESHOT=m
|
||||
|
@ -4798,6 +4840,7 @@ CONFIG_OPTPROBES=y
|
|||
CONFIG_HZ_1000=y
|
||||
CONFIG_NO_HZ=y
|
||||
|
||||
# CONFIG_SCHED_STACK_END_CHECK is not set
|
||||
CONFIG_TIMER_STATS=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
|
@ -4838,6 +4881,8 @@ CONFIG_APM_POWER=m
|
|||
# CONFIG_CHARGER_BQ24190 is not set
|
||||
# CONFIG_CHARGER_BQ24735 is not set
|
||||
CONFIG_POWER_RESET=y
|
||||
# CONFIG_POWER_RESET_LTC2952 is not set
|
||||
# CONFIG_POWER_RESET_SYSCON is not set
|
||||
|
||||
# CONFIG_PDA_POWER is not set
|
||||
|
||||
|
@ -4921,6 +4966,8 @@ CONFIG_NET_DSA=m
|
|||
CONFIG_NET_DSA_MV88E6060=m
|
||||
CONFIG_NET_DSA_MV88E6131=m
|
||||
CONFIG_NET_DSA_MV88E6123_61_65=m
|
||||
CONFIG_NET_DSA_MV88E6171=m
|
||||
CONFIG_NET_DSA_BCM_SF2=m
|
||||
|
||||
# Used by Maemo, we don't care.
|
||||
# CONFIG_PHONET is not set
|
||||
|
@ -4936,6 +4983,7 @@ CONFIG_NET_DSA_MV88E6123_61_65=m
|
|||
CONFIG_WM8350_POWER=m
|
||||
|
||||
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
|
||||
# CONFIG_VIDEO_PCI_SKELETON is not set
|
||||
|
||||
CONFIG_USB_WUSB=m
|
||||
CONFIG_USB_WUSB_CBAF=m
|
||||
|
@ -4980,9 +5028,6 @@ CONFIG_RTL8192E=m
|
|||
# CONFIG_INPUT_GPIO is not set
|
||||
# CONFIG_VIDEO_CX25821 is not set
|
||||
# CONFIG_R8188EU is not set
|
||||
# Larry Finger maintains (rhbz 1113422)
|
||||
CONFIG_R8192EE=m
|
||||
# CONFIG_R8821AE is not set
|
||||
# CONFIG_RTL8192U is not set
|
||||
CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162)
|
||||
# CONFIG_8723AU_AP_MODE is not set
|
||||
|
@ -5014,7 +5059,6 @@ CONFIG_USBIP_HOST=m
|
|||
# CONFIG_DGNC is not set
|
||||
# CONFIG_RTS5208 is not set
|
||||
# CONFIG_GS_FPGABOOT is not set
|
||||
# CONFIG_BT_NOKIA_H4P is not set
|
||||
# CONFIG_UNISYSSPAR is not set
|
||||
# CONFIG_MEDIA_TUNER_MSI001 is not set
|
||||
# END OF STAGING
|
||||
|
@ -5026,6 +5070,8 @@ CONFIG_USBIP_HOST=m
|
|||
|
||||
CONFIG_NOP_USB_XCEIV=m
|
||||
|
||||
# CONFIG_INTEGRITY is not set
|
||||
|
||||
# CONFIG_IMA is not set
|
||||
CONFIG_IMA_MEASURE_PCR_IDX=10
|
||||
CONFIG_IMA_LSM_RULES=y
|
||||
|
@ -5046,6 +5092,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
|
|||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
# CONFIG_RCU_CPU_STALL_INFO is not set
|
||||
# CONFIG_TASKS_RCU is not set
|
||||
# CONFIG_RCU_USER_QS is not set
|
||||
CONFIG_SPARSE_RCU_POINTER=y
|
||||
|
||||
|
@ -5097,6 +5144,7 @@ CONFIG_GPIO_SYSFS=y
|
|||
# CONFIG_GPIO_PCA953X is not set
|
||||
# CONFIG_GPIO_PCF857X is not set
|
||||
# CONFIG_GPIO_CS5535 is not set
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_GPIO_ADP5588 is not set
|
||||
# CONFIG_GPIO_IT8761E is not set
|
||||
# CONFIG SB105x is not set
|
||||
|
@ -5124,6 +5172,7 @@ CONFIG_GPIO_VIPERBOARD=m
|
|||
# CONFIG_GPIO_74X164 is not set
|
||||
# CONFIG_GPIO_MAX7301 is not set
|
||||
# CONFIG_GPIO_MC33880 is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
|
||||
# FIXME: Why?
|
||||
|
||||
|
@ -5147,6 +5196,7 @@ CONFIG_TCM_IBLOCK=m
|
|||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_FC=m
|
||||
CONFIG_TCM_USER=m
|
||||
|
||||
CONFIG_HWSPINLOCK=m
|
||||
|
||||
|
@ -5155,7 +5205,7 @@ CONFIG_PSTORE_RAM=m
|
|||
# CONFIG_PSTORE_CONSOLE is not set
|
||||
# CONFIG_PSTORE_FTRACE is not set
|
||||
|
||||
# CONFIG_TEST_MODULE is not set
|
||||
# CONFIG_TEST_LKM is not set
|
||||
# CONFIG_TEST_USER_COPY is not set
|
||||
# CONFIG_TEST_BPF is not set
|
||||
# CONFIG_TEST_UDELAY is not set
|
||||
|
@ -5201,8 +5251,19 @@ CONFIG_POWERCAP=y
|
|||
|
||||
# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set
|
||||
|
||||
# CONFIG_HMC_DRV is not set
|
||||
|
||||
# CONFIG_PM_DEVFREQ is not set
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
|
||||
# CONFIG_CPUFREQ_DT is not set
|
||||
|
||||
# CONFIG_MODULE_SIG is not set
|
||||
# FIXME: Revisit this to see if we can use it instead of the spec file stuff
|
||||
# CONFIG_MODULE_COMPRESS is not set
|
||||
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
|
||||
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
|
||||
|
||||
|
@ -5212,3 +5273,8 @@ CONFIG_POWERCAP=y
|
|||
# CONFIG_GLOB_SELFTEST is not set
|
||||
|
||||
# CONFIG_SBSAUART_TTY is not set
|
||||
|
||||
# CONFIG_SERIAL_8250_FINTEK is not set
|
||||
|
||||
# set in x86-generic presently
|
||||
# CONFIG_TOUCHSCREEN_GOODIX is not set
|
||||
|
|
|
@ -309,7 +309,6 @@ CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
|
|||
|
||||
# CONFIG_PPC_MPC512x is not set
|
||||
# CONFIG_RTC_DRV_MPC5121 is not set
|
||||
# CONFIG_RTC_DRV_HYM8563 is not set
|
||||
|
||||
# CONFIG_MPC512X_DMA is not set
|
||||
|
||||
|
@ -323,8 +322,6 @@ CONFIG_I2C_MPC=m
|
|||
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
|
||||
# CONFIG_CRYPTO_SHA1_PPC is not set
|
||||
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
|
||||
# CONFIG_CAN_FLEXCAN is not set
|
||||
# CONFIG_NET_VENDOR_XILINX is not set
|
||||
# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
|
||||
|
@ -351,15 +348,14 @@ CONFIG_RCU_FANOUT_LEAF=16
|
|||
|
||||
CONFIG_PPC_DENORMALISATION=y
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_MFD_SYSCON is not set
|
||||
# CONFIG_RTC_DRV_SNVS is not set
|
||||
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
|
||||
|
||||
|
||||
# CONFIG_CPU_LITTLE_ENDIAN is not set
|
||||
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_POWER_RESET_GPIO_RESTART=y
|
||||
CONFIG_FB_SSD1307=m
|
||||
CONFIG_INPUT_PWM_BEEPER=m
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
|
|
|
@ -171,8 +171,8 @@ CONFIG_CRYPTO_842=m
|
|||
CONFIG_CRYPTO_DEV_NX_ENCRYPT=m
|
||||
CONFIG_CRYPTO_DEV_NX_COMPRESS=m
|
||||
|
||||
CONFIG_CXL=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
# CONFIG_PPC_ICSWX_PID is not set
|
||||
# CONFIG_PPC_ICSWX_USE_SIGILL is not set
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
|
|
|
@ -161,8 +161,8 @@ CONFIG_CRYPTO_842=m
|
|||
CONFIG_CRYPTO_DEV_NX_ENCRYPT=m
|
||||
CONFIG_CRYPTO_DEV_NX_COMPRESS=m
|
||||
|
||||
CONFIG_CXL=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
# CONFIG_PPC_ICSWX_PID is not set
|
||||
# CONFIG_PPC_ICSWX_USE_SIGILL is not set
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
|
|
|
@ -83,7 +83,6 @@ CONFIG_TN3270_FS=m
|
|||
#
|
||||
CONFIG_S390_TAPE_34XX=m
|
||||
|
||||
# CONFIG_PPP is not set
|
||||
# CONFIG_SLIP is not set
|
||||
|
||||
#
|
||||
|
@ -213,7 +212,6 @@ CONFIG_SCHED_BOOK=y
|
|||
|
||||
CONFIG_CRYPTO_GHASH_S390=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
# CONFIG_TRANSPARENT_HUGEPAGE is not set
|
||||
CONFIG_SCM_BUS=y
|
||||
CONFIG_EADM_SCH=m
|
||||
|
|
|
@ -78,7 +78,6 @@ CONFIG_X86_SPEEDSTEP_LIB=y
|
|||
CONFIG_X86_LONGRUN=y
|
||||
# CONFIG_X86_LONGHAUL is not set
|
||||
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
|
||||
# CONFIG_GENERIC_CPUFREQ_CPU0 is not set
|
||||
# e_powersaver is dangerous
|
||||
# CONFIG_X86_E_POWERSAVER is not set
|
||||
|
||||
|
@ -168,6 +167,7 @@ CONFIG_XO1_RFKILL=m
|
|||
CONFIG_X86_32_IRIS=m
|
||||
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
# CONFIG_POWER_RESET_GPIO_RESTART is not set
|
||||
|
||||
|
||||
|
||||
|
@ -206,14 +206,10 @@ CONFIG_BACKLIGHT_PWM=m
|
|||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
# CONFIG_GPIO_SODAVILLE is not set
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_BACKLIGHT_OT200 is not set
|
||||
# CONFIG_RTC_DRV_SNVS is not set
|
||||
# CONFIG_RTC_DRV_HYM8563 is not set
|
||||
|
||||
# CONFIG_MLX5_INFINIBAND is not set
|
||||
# CONFIG_PINCTRL_SINGLE is not set
|
||||
# CONFIG_PINCTRL_MSM8X74 is not set
|
||||
# CONFIG_PINCTRL_BCM281XX is not set
|
||||
# CONFIG_PINCTRL_APQ8064 is not set
|
||||
# CONFIG_PINCTRL_IPQ8064 is not set
|
||||
|
|
|
@ -240,6 +240,7 @@ CONFIG_INTEL_SMARTCONNECT=y
|
|||
CONFIG_PVPANIC=m
|
||||
|
||||
# CONFIG_TOUCHSCREEN_INTEL_MID is not set
|
||||
CONFIG_TOUCHSCREEN_GOODIX=m
|
||||
|
||||
# CONFIG_SMSC37B787_WDT is not set
|
||||
CONFIG_VIA_WDT=m
|
||||
|
@ -293,6 +294,8 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
|
|||
CONFIG_XEN_SELFBALLOONING=y
|
||||
CONFIG_XEN_PCIDEV_BACKEND=m
|
||||
CONFIG_XEN_ACPI_PROCESSOR=m
|
||||
# CONFIG_XEN_SCSI_FRONTEND is not set
|
||||
# CONFIG_XEN_SCSI_BACKEND is not set
|
||||
|
||||
CONFIG_MTD_ESB2ROM=m
|
||||
CONFIG_MTD_CK804XROM=m
|
||||
|
@ -376,7 +379,6 @@ CONFIG_LPC_ICH=m
|
|||
|
||||
CONFIG_GPIO_ICH=m
|
||||
# CONFIG_GPIO_LYNXPOINT is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_GPIO_F7188X is not set
|
||||
|
||||
# These should all go away with IC2_ACPI is fixed
|
||||
|
@ -406,7 +408,6 @@ CONFIG_GPIO_ICH=m
|
|||
# CONFIG_TWL4030_CORE is not set
|
||||
# CONFIG_TWL6040_CORE is not set
|
||||
|
||||
|
||||
CONFIG_PCI_CNB20LE_QUIRK=y
|
||||
|
||||
CONFIG_ACPI_EC_DEBUGFS=m
|
||||
|
@ -480,15 +481,19 @@ CONFIG_NFC_MICROREAD_MEI=m
|
|||
# CONFIG_X86_GOLDFISH is not set
|
||||
|
||||
CONFIG_X86_INTEL_LPSS=y
|
||||
CONFIG_IOSF_MBI=m
|
||||
# CONFIG_IOSF_MBI_DEBUG is not set
|
||||
CONFIG_PWM_LPSS=m
|
||||
CONFIG_PWM_LPSS_PCI=m
|
||||
CONFIG_PWM_LPSS_PLATFORM=m
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_BAYTRAIL=y
|
||||
|
||||
# CONFIG_INTEL_POWERCLAMP is not set
|
||||
CONFIG_X86_PKG_TEMP_THERMAL=m
|
||||
CONFIG_ACPI_INT3403_THERMAL=m
|
||||
CONFIG_INTEL_SOC_DTS_THERMAL=m
|
||||
CONFIG_INTEL_RAPL=m
|
||||
CONFIG_INT340X_THERMAL=m
|
||||
|
||||
CONFIG_VMWARE_VMCI=m
|
||||
CONFIG_VMWARE_VMCI_VSOCKETS=m
|
||||
|
|
|
@ -57,6 +57,7 @@ CONFIG_INTEL_MIC_X100_DMA=m
|
|||
# SHPC has half-arsed PCI probing, which makes it load on too many systems
|
||||
CONFIG_HOTPLUG_PCI_SHPC=m
|
||||
|
||||
# CONFIG_CRYPTO_SHA1_MB is not set
|
||||
CONFIG_CRYPTO_AES_X86_64=y
|
||||
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
|
||||
CONFIG_CRYPTO_TWOFISH_X86_64=m
|
||||
|
@ -152,8 +153,6 @@ CONFIG_FUNCTION_GRAPH_TRACER=y
|
|||
|
||||
CONFIG_I7300_IDLE=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
|
||||
# https://fedoraproject.org/wiki/Features/Checkpoint_Restore
|
||||
CONFIG_CHECKPOINT_RESTORE=y
|
||||
|
||||
|
|
|
@ -269,7 +269,7 @@ index 000000000000..fd4736ec99f5
|
|||
+
|
||||
+#endif /* _X86_CRASH_H */
|
||||
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
|
||||
index 6e9f74a5c095..ee6bae16b04c 100644
|
||||
index efefd12a0f7b..6a318132b7ee 100644
|
||||
--- a/drivers/char/Kconfig
|
||||
+++ b/drivers/char/Kconfig
|
||||
@@ -4,6 +4,9 @@
|
||||
|
@ -283,13 +283,13 @@ index 6e9f74a5c095..ee6bae16b04c 100644
|
|||
|
||||
config DEVKMEM
|
||||
diff --git a/drivers/char/Makefile b/drivers/char/Makefile
|
||||
index a324f9303e36..33ce2fb1d0a3 100644
|
||||
index d06cde26031b..0832636fd9bc 100644
|
||||
--- a/drivers/char/Makefile
|
||||
+++ b/drivers/char/Makefile
|
||||
@@ -61,3 +61,5 @@ obj-$(CONFIG_JS_RTC) += js-rtc.o
|
||||
js-rtc-y = rtc.o
|
||||
@@ -62,3 +62,5 @@ js-rtc-y = rtc.o
|
||||
|
||||
obj-$(CONFIG_TILE_SROM) += tile-srom.o
|
||||
obj-$(CONFIG_XILLYBUS) += xillybus/
|
||||
+
|
||||
+obj-$(CONFIG_CRASH) += crash.o
|
||||
diff --git a/drivers/char/crash.c b/drivers/char/crash.c
|
||||
|
|
|
@ -1,86 +0,0 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Sun, 26 Oct 2014 19:31:10 -0400
|
||||
Subject: [PATCH] deal with deadlock in d_walk()
|
||||
|
||||
... by not hitting rename_retry for reasons other than rename having
|
||||
happened. In other words, do _not_ restart when finding that
|
||||
between unlocking the child and locking the parent the former got
|
||||
into __dentry_kill(). Skip the killed siblings instead...
|
||||
|
||||
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
||||
---
|
||||
fs/dcache.c | 31 ++++++++++++++++---------------
|
||||
1 file changed, 16 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/fs/dcache.c b/fs/dcache.c
|
||||
index 8d7c2b34cb3f..e6c207134a14 100644
|
||||
--- a/fs/dcache.c
|
||||
+++ b/fs/dcache.c
|
||||
@@ -465,7 +465,7 @@ static void __dentry_kill(struct dentry *dentry)
|
||||
}
|
||||
/* if it was on the hash then remove it */
|
||||
__d_drop(dentry);
|
||||
- list_del(&dentry->d_child);
|
||||
+ __list_del_entry(&dentry->d_child);
|
||||
/*
|
||||
* Inform d_walk() that we are no longer attached to the
|
||||
* dentry tree
|
||||
@@ -1113,33 +1113,31 @@ resume:
|
||||
/*
|
||||
* All done at this level ... ascend and resume the search.
|
||||
*/
|
||||
+ rcu_read_lock();
|
||||
+ascend:
|
||||
if (this_parent != parent) {
|
||||
struct dentry *child = this_parent;
|
||||
this_parent = child->d_parent;
|
||||
|
||||
- rcu_read_lock();
|
||||
spin_unlock(&child->d_lock);
|
||||
spin_lock(&this_parent->d_lock);
|
||||
|
||||
- /*
|
||||
- * might go back up the wrong parent if we have had a rename
|
||||
- * or deletion
|
||||
- */
|
||||
- if (this_parent != child->d_parent ||
|
||||
- (child->d_flags & DCACHE_DENTRY_KILLED) ||
|
||||
- need_seqretry(&rename_lock, seq)) {
|
||||
- spin_unlock(&this_parent->d_lock);
|
||||
- rcu_read_unlock();
|
||||
+ /* might go back up the wrong parent if we have had a rename. */
|
||||
+ if (need_seqretry(&rename_lock, seq))
|
||||
goto rename_retry;
|
||||
+ next = child->d_child.next;
|
||||
+ while (unlikely(child->d_flags & DCACHE_DENTRY_KILLED)) {
|
||||
+ if (next == &this_parent->d_subdirs)
|
||||
+ goto ascend;
|
||||
+ child = list_entry(next, struct dentry, d_child);
|
||||
+ next = next->next;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
- next = child->d_child.next;
|
||||
goto resume;
|
||||
}
|
||||
- if (need_seqretry(&rename_lock, seq)) {
|
||||
- spin_unlock(&this_parent->d_lock);
|
||||
+ if (need_seqretry(&rename_lock, seq))
|
||||
goto rename_retry;
|
||||
- }
|
||||
+ rcu_read_unlock();
|
||||
if (finish)
|
||||
finish(data);
|
||||
|
||||
@@ -1149,6 +1147,9 @@ out_unlock:
|
||||
return;
|
||||
|
||||
rename_retry:
|
||||
+ spin_unlock(&this_parent->d_lock);
|
||||
+ rcu_read_unlock();
|
||||
+ BUG_ON(seq & 1);
|
||||
if (!retry)
|
||||
return;
|
||||
seq = 1;
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
From: "kernel-team@fedoraproject.org" <kernel-team@fedoraproject.org>
|
||||
Date: Fri, 18 Apr 2014 06:58:29 -0400
|
||||
Subject: [PATCH] disable libdw unwind on non-x86
|
||||
|
||||
Bugzilla: 1025603
|
||||
Upstream-status: ??
|
||||
---
|
||||
tools/perf/config/Makefile | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
|
||||
index 1f67aa02d240..86c21a24da46 100644
|
||||
--- a/tools/perf/config/Makefile
|
||||
+++ b/tools/perf/config/Makefile
|
||||
@@ -52,6 +52,10 @@ ifeq ($(ARCH),powerpc)
|
||||
CFLAGS += -DHAVE_SKIP_CALLCHAIN_IDX
|
||||
endif
|
||||
|
||||
+ifneq ($(ARCH),x86)
|
||||
+ NO_LIBDW_DWARF_UNWIND := 1
|
||||
+endif
|
||||
+
|
||||
ifeq ($(LIBUNWIND_LIBS),)
|
||||
NO_LIBUNWIND := 1
|
||||
else
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -11,4 +11,4 @@
|
|||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject "
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn media memstick message nfc ntb pcmcia platform ssb staging uio uwb"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation target_core_user"
|
||||
|
|
|
@ -32,7 +32,7 @@ netprots="appletalk atm ax25 batman-adv bluetooth dccp dsa ieee802154 irda l2tp
|
|||
|
||||
drmdrvs="ast gma500 mgag200 via nouveau"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub target_core_user"
|
||||
|
||||
# Grab the arch-specific filter list overrides
|
||||
source ./filter-$2.sh
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
|
|
10670
kernel-arm64.patch
10670
kernel-arm64.patch
File diff suppressed because it is too large
Load Diff
55
kernel.spec
55
kernel.spec
|
@ -42,19 +42,19 @@ Summary: The Linux kernel
|
|||
# For non-released -rc kernels, this will be appended after the rcX and
|
||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||
#
|
||||
%global baserelease 300
|
||||
%global baserelease 200
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
|
||||
# which yields a base_sublevel of 0.
|
||||
%define base_sublevel 17
|
||||
%define base_sublevel 18
|
||||
|
||||
## If this is a released kernel ##
|
||||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
%define stable_update 8
|
||||
%define stable_update 2
|
||||
# Set rpm version accordingly
|
||||
%if 0%{?stable_update}
|
||||
%define stablerev %{stable_update}
|
||||
|
@ -572,11 +572,8 @@ Patch14010: lis3-improve-handling-of-null-rate.patch
|
|||
Patch15000: watchdog-Disable-watchdog-on-virtual-machines.patch
|
||||
|
||||
# PPC
|
||||
Patch18000: ppc64-fixtools.patch
|
||||
|
||||
# ARM64
|
||||
Patch20000: arm64-force-serial-to-be-active-consdev.patch
|
||||
Patch20001: arm64-vgic-error-to-info.patch
|
||||
Patch20002: arm64-fix-xgene_enet_process_ring.patch
|
||||
|
||||
# ARMv7
|
||||
Patch21020: ARM-tegra-usb-no-reset.patch
|
||||
|
@ -603,21 +600,9 @@ Patch21247: ath9k-rx-dma-stop-check.patch
|
|||
|
||||
Patch22000: weird-root-dentry-name-debug.patch
|
||||
|
||||
#rhbz 1025603
|
||||
Patch25063: disable-libdw-unwind-on-non-x86.patch
|
||||
|
||||
Patch26000: perf-install-trace-event-plugins.patch
|
||||
|
||||
# Patch series from Hans for various backlight and platform driver fixes
|
||||
Patch26002: samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
|
||||
|
||||
#rhbz 1134969
|
||||
Patch26016: HID-wacom-Add-support-for-the-Cintiq-Companion.patch
|
||||
|
||||
#rhbz 1110011
|
||||
Patch26019: psmouse-Add-psmouse_matches_pnp_id-helper-function.patch
|
||||
Patch26020: psmouse-Add-support-for-detecting-FocalTech-PS-2-tou.patch
|
||||
|
||||
#rhbz 1089731
|
||||
Patch26058: asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
||||
|
||||
|
@ -635,13 +620,11 @@ Patch26096: cfg80211-don-t-WARN-about-two-consecutive-Country-IE.patch
|
|||
#rhbz 1173806
|
||||
Patch26101: powerpc-powernv-force-all-CPUs-to-be-bootable.patch
|
||||
|
||||
#CVE-2014-8559 rhbz 1159313 1173814
|
||||
Patch26098: move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch
|
||||
Patch26099: deal-with-deadlock-in-d_walk.patch
|
||||
|
||||
#rhbz 1175261
|
||||
Patch26103: blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging.patch
|
||||
|
||||
Patch26107: uapi-linux-target_core_user.h-fix-headers_install.sh.patch
|
||||
|
||||
#rhbz 1163927
|
||||
Patch26121: Set-UID-in-sess_auth_rawntlmssp_authenticate-too.patch
|
||||
|
||||
|
@ -1242,7 +1225,6 @@ ApplyOptionalPatch upstream-reverts.patch -R
|
|||
ApplyPatch lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
|
||||
|
||||
# PPC
|
||||
ApplyPatch ppc64-fixtools.patch
|
||||
|
||||
# ARM64
|
||||
|
||||
|
@ -1381,21 +1363,9 @@ ApplyPatch criu-no-expert.patch
|
|||
#rhbz 892811
|
||||
ApplyPatch ath9k-rx-dma-stop-check.patch
|
||||
|
||||
#rhbz 1025603
|
||||
ApplyPatch disable-libdw-unwind-on-non-x86.patch
|
||||
|
||||
ApplyPatch perf-install-trace-event-plugins.patch
|
||||
|
||||
# Patch series from Hans for various backlight and platform driver fixes
|
||||
ApplyPatch samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
|
||||
|
||||
#rhbz 1134969
|
||||
ApplyPatch HID-wacom-Add-support-for-the-Cintiq-Companion.patch
|
||||
|
||||
#rhbz 1110011
|
||||
ApplyPatch psmouse-Add-psmouse_matches_pnp_id-helper-function.patch
|
||||
ApplyPatch psmouse-Add-support-for-detecting-FocalTech-PS-2-tou.patch
|
||||
|
||||
#rhbz 1089731
|
||||
ApplyPatch asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
||||
|
||||
|
@ -1413,13 +1383,11 @@ ApplyPatch cfg80211-don-t-WARN-about-two-consecutive-Country-IE.patch
|
|||
#rhbz 1173806
|
||||
ApplyPatch powerpc-powernv-force-all-CPUs-to-be-bootable.patch
|
||||
|
||||
#CVE-2014-8559 rhbz 1159313 1173814
|
||||
ApplyPatch move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch
|
||||
ApplyPatch deal-with-deadlock-in-d_walk.patch
|
||||
|
||||
#rhbz 1175261
|
||||
ApplyPatch blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging.patch
|
||||
|
||||
ApplyPatch uapi-linux-target_core_user.h-fix-headers_install.sh.patch
|
||||
|
||||
#rhbz 1163927
|
||||
ApplyPatch Set-UID-in-sess_auth_rawntlmssp_authenticate-too.patch
|
||||
|
||||
|
@ -1452,11 +1420,7 @@ ApplyPatch kernel-arm64.patch
|
|||
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
||||
ApplyPatch kernel-arm64.patch -R
|
||||
%else
|
||||
# arm64-force-serial-to-be-active-consdev.patch: not for upstream
|
||||
# solved with SPCR in future
|
||||
ApplyPatch arm64-force-serial-to-be-active-consdev.patch
|
||||
ApplyPatch arm64-vgic-error-to-info.patch
|
||||
ApplyPatch arm64-fix-xgene_enet_process_ring.patch
|
||||
%endif
|
||||
%endif
|
||||
|
||||
|
@ -2321,6 +2285,9 @@ fi
|
|||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Tue Jan 13 2015 Justin M. Forbes <jforbes@fedoraproject.org> - 3.18.2-200
|
||||
- Linux v3.18.2
|
||||
|
||||
* Mon Jan 12 2015 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2014-9585 ASLR brute-force possible for vdso (rhbz 1181054 1181056)
|
||||
- Backlight fixes for Samsung and Dell machines (rhbz 1094948 1115713 1163574)
|
||||
|
|
|
@ -1,736 +0,0 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Sun, 26 Oct 2014 19:19:16 -0400
|
||||
Subject: [PATCH] move d_rcu from overlapping d_child to overlapping d_alias
|
||||
|
||||
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
||||
---
|
||||
arch/powerpc/platforms/cell/spufs/inode.c | 2 +-
|
||||
drivers/staging/lustre/lustre/llite/dcache.c | 2 +-
|
||||
drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +-
|
||||
drivers/staging/lustre/lustre/llite/namei.c | 8 ++--
|
||||
fs/affs/amigaffs.c | 2 +-
|
||||
fs/autofs4/expire.c | 12 +++---
|
||||
fs/autofs4/root.c | 2 +-
|
||||
fs/ceph/dir.c | 8 ++--
|
||||
fs/ceph/inode.c | 2 +-
|
||||
fs/cifs/inode.c | 2 +-
|
||||
fs/coda/cache.c | 2 +-
|
||||
fs/dcache.c | 52 ++++++++++++-------------
|
||||
fs/debugfs/inode.c | 2 +-
|
||||
fs/exportfs/expfs.c | 2 +-
|
||||
fs/libfs.c | 12 +++---
|
||||
fs/ncpfs/dir.c | 2 +-
|
||||
fs/ncpfs/ncplib_kernel.h | 4 +-
|
||||
fs/nfs/getroot.c | 2 +-
|
||||
fs/notify/fsnotify.c | 4 +-
|
||||
fs/ocfs2/dcache.c | 2 +-
|
||||
include/linux/dcache.h | 8 ++--
|
||||
kernel/trace/trace.c | 4 +-
|
||||
kernel/trace/trace_events.c | 2 +-
|
||||
security/selinux/selinuxfs.c | 6 +--
|
||||
24 files changed, 73 insertions(+), 73 deletions(-)
|
||||
|
||||
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
|
||||
index 87ba7cf99cd7..65d633f20d37 100644
|
||||
--- a/arch/powerpc/platforms/cell/spufs/inode.c
|
||||
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
|
||||
@@ -164,7 +164,7 @@ static void spufs_prune_dir(struct dentry *dir)
|
||||
struct dentry *dentry, *tmp;
|
||||
|
||||
mutex_lock(&dir->d_inode->i_mutex);
|
||||
- list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_child) {
|
||||
spin_lock(&dentry->d_lock);
|
||||
if (!(d_unhashed(dentry)) && dentry->d_inode) {
|
||||
dget_dlock(dentry);
|
||||
diff --git a/drivers/staging/lustre/lustre/llite/dcache.c b/drivers/staging/lustre/lustre/llite/dcache.c
|
||||
index 49ae207ad425..e2add5fde0fe 100644
|
||||
--- a/drivers/staging/lustre/lustre/llite/dcache.c
|
||||
+++ b/drivers/staging/lustre/lustre/llite/dcache.c
|
||||
@@ -258,7 +258,7 @@ void ll_invalidate_aliases(struct inode *inode)
|
||||
inode->i_ino, inode->i_generation, inode);
|
||||
|
||||
ll_lock_dcache(inode);
|
||||
- ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_alias) {
|
||||
+ ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_u.d_alias) {
|
||||
CDEBUG(D_DENTRY, "dentry in drop %.*s (%p) parent %p "
|
||||
"inode %p flags %d\n", dentry->d_name.len,
|
||||
dentry->d_name.name, dentry, dentry->d_parent,
|
||||
diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c
|
||||
index 0c59e26c0805..36e62524a37b 100644
|
||||
--- a/drivers/staging/lustre/lustre/llite/llite_lib.c
|
||||
+++ b/drivers/staging/lustre/lustre/llite/llite_lib.c
|
||||
@@ -704,7 +704,7 @@ void lustre_dump_dentry(struct dentry *dentry, int recur)
|
||||
return;
|
||||
|
||||
list_for_each(tmp, &dentry->d_subdirs) {
|
||||
- struct dentry *d = list_entry(tmp, struct dentry, d_u.d_child);
|
||||
+ struct dentry *d = list_entry(tmp, struct dentry, d_child);
|
||||
lustre_dump_dentry(d, recur - 1);
|
||||
}
|
||||
}
|
||||
diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c
|
||||
index 0dc7173bbd41..9de0d51e33a2 100644
|
||||
--- a/drivers/staging/lustre/lustre/llite/namei.c
|
||||
+++ b/drivers/staging/lustre/lustre/llite/namei.c
|
||||
@@ -167,14 +167,14 @@ static void ll_invalidate_negative_children(struct inode *dir)
|
||||
struct ll_d_hlist_node *p;
|
||||
|
||||
ll_lock_dcache(dir);
|
||||
- ll_d_hlist_for_each_entry(dentry, p, &dir->i_dentry, d_alias) {
|
||||
+ ll_d_hlist_for_each_entry(dentry, p, &dir->i_dentry, d_u.d_alias) {
|
||||
spin_lock(&dentry->d_lock);
|
||||
if (!list_empty(&dentry->d_subdirs)) {
|
||||
struct dentry *child;
|
||||
|
||||
list_for_each_entry_safe(child, tmp_subdir,
|
||||
&dentry->d_subdirs,
|
||||
- d_u.d_child) {
|
||||
+ d_child) {
|
||||
if (child->d_inode == NULL)
|
||||
d_lustre_invalidate(child, 1);
|
||||
}
|
||||
@@ -362,7 +362,7 @@ static struct dentry *ll_find_alias(struct inode *inode, struct dentry *dentry)
|
||||
discon_alias = invalid_alias = NULL;
|
||||
|
||||
ll_lock_dcache(inode);
|
||||
- ll_d_hlist_for_each_entry(alias, p, &inode->i_dentry, d_alias) {
|
||||
+ ll_d_hlist_for_each_entry(alias, p, &inode->i_dentry, d_u.d_alias) {
|
||||
LASSERT(alias != dentry);
|
||||
|
||||
spin_lock(&alias->d_lock);
|
||||
@@ -943,7 +943,7 @@ static void ll_get_child_fid(struct inode * dir, struct qstr *name,
|
||||
{
|
||||
struct dentry *parent, *child;
|
||||
|
||||
- parent = ll_d_hlist_entry(dir->i_dentry, struct dentry, d_alias);
|
||||
+ parent = ll_d_hlist_entry(dir->i_dentry, struct dentry, d_u.d_alias);
|
||||
child = d_lookup(parent, name);
|
||||
if (child) {
|
||||
if (child->d_inode)
|
||||
diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c
|
||||
index 406b29836b19..a674c114fd8e 100644
|
||||
--- a/fs/affs/amigaffs.c
|
||||
+++ b/fs/affs/amigaffs.c
|
||||
@@ -127,7 +127,7 @@ affs_fix_dcache(struct inode *inode, u32 entry_ino)
|
||||
{
|
||||
struct dentry *dentry;
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
if (entry_ino == (u32)(long)dentry->d_fsdata) {
|
||||
dentry->d_fsdata = (void *)inode->i_ino;
|
||||
break;
|
||||
diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c
|
||||
index a7be57e39be7..11c6cddff1b9 100644
|
||||
--- a/fs/autofs4/expire.c
|
||||
+++ b/fs/autofs4/expire.c
|
||||
@@ -91,7 +91,7 @@ static struct dentry *get_next_positive_subdir(struct dentry *prev,
|
||||
spin_lock(&root->d_lock);
|
||||
|
||||
if (prev)
|
||||
- next = prev->d_u.d_child.next;
|
||||
+ next = prev->d_child.next;
|
||||
else {
|
||||
prev = dget_dlock(root);
|
||||
next = prev->d_subdirs.next;
|
||||
@@ -105,13 +105,13 @@ cont:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- q = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ q = list_entry(next, struct dentry, d_child);
|
||||
|
||||
spin_lock_nested(&q->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
/* Already gone or negative dentry (under construction) - try next */
|
||||
if (!d_count(q) || !simple_positive(q)) {
|
||||
spin_unlock(&q->d_lock);
|
||||
- next = q->d_u.d_child.next;
|
||||
+ next = q->d_child.next;
|
||||
goto cont;
|
||||
}
|
||||
dget_dlock(q);
|
||||
@@ -161,13 +161,13 @@ again:
|
||||
goto relock;
|
||||
}
|
||||
spin_unlock(&p->d_lock);
|
||||
- next = p->d_u.d_child.next;
|
||||
+ next = p->d_child.next;
|
||||
p = parent;
|
||||
if (next != &parent->d_subdirs)
|
||||
break;
|
||||
}
|
||||
}
|
||||
- ret = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ ret = list_entry(next, struct dentry, d_child);
|
||||
|
||||
spin_lock_nested(&ret->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
/* Negative dentry - try next */
|
||||
@@ -460,7 +460,7 @@ found:
|
||||
spin_lock(&sbi->lookup_lock);
|
||||
spin_lock(&expired->d_parent->d_lock);
|
||||
spin_lock_nested(&expired->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
- list_move(&expired->d_parent->d_subdirs, &expired->d_u.d_child);
|
||||
+ list_move(&expired->d_parent->d_subdirs, &expired->d_child);
|
||||
spin_unlock(&expired->d_lock);
|
||||
spin_unlock(&expired->d_parent->d_lock);
|
||||
spin_unlock(&sbi->lookup_lock);
|
||||
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c
|
||||
index cdb25ebccc4c..38a9e0fa5177 100644
|
||||
--- a/fs/autofs4/root.c
|
||||
+++ b/fs/autofs4/root.c
|
||||
@@ -659,7 +659,7 @@ static void autofs_clear_leaf_automount_flags(struct dentry *dentry)
|
||||
/* only consider parents below dentrys in the root */
|
||||
if (IS_ROOT(parent->d_parent))
|
||||
return;
|
||||
- d_child = &dentry->d_u.d_child;
|
||||
+ d_child = &dentry->d_child;
|
||||
/* Set parent managed if it's becoming empty */
|
||||
if (d_child->next == &parent->d_subdirs &&
|
||||
d_child->prev == &parent->d_subdirs)
|
||||
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
|
||||
index c29d6ae68874..51ea03313df9 100644
|
||||
--- a/fs/ceph/dir.c
|
||||
+++ b/fs/ceph/dir.c
|
||||
@@ -111,7 +111,7 @@ static int fpos_cmp(loff_t l, loff_t r)
|
||||
/*
|
||||
* When possible, we try to satisfy a readdir by peeking at the
|
||||
* dcache. We make this work by carefully ordering dentries on
|
||||
- * d_u.d_child when we initially get results back from the MDS, and
|
||||
+ * d_child when we initially get results back from the MDS, and
|
||||
* falling back to a "normal" sync readdir if any dentries in the dir
|
||||
* are dropped.
|
||||
*
|
||||
@@ -147,11 +147,11 @@ static int __dcache_readdir(struct file *file, struct dir_context *ctx,
|
||||
p = parent->d_subdirs.prev;
|
||||
dout(" initial p %p/%p\n", p->prev, p->next);
|
||||
} else {
|
||||
- p = last->d_u.d_child.prev;
|
||||
+ p = last->d_child.prev;
|
||||
}
|
||||
|
||||
more:
|
||||
- dentry = list_entry(p, struct dentry, d_u.d_child);
|
||||
+ dentry = list_entry(p, struct dentry, d_child);
|
||||
di = ceph_dentry(dentry);
|
||||
while (1) {
|
||||
dout(" p %p/%p %s d_subdirs %p/%p\n", p->prev, p->next,
|
||||
@@ -174,7 +174,7 @@ more:
|
||||
!dentry->d_inode ? " null" : "");
|
||||
spin_unlock(&dentry->d_lock);
|
||||
p = p->prev;
|
||||
- dentry = list_entry(p, struct dentry, d_u.d_child);
|
||||
+ dentry = list_entry(p, struct dentry, d_child);
|
||||
di = ceph_dentry(dentry);
|
||||
}
|
||||
|
||||
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
|
||||
index 04c89c266cec..c3e103ff18bd 100644
|
||||
--- a/fs/ceph/inode.c
|
||||
+++ b/fs/ceph/inode.c
|
||||
@@ -1399,7 +1399,7 @@ retry_lookup:
|
||||
/* reorder parent's d_subdirs */
|
||||
spin_lock(&parent->d_lock);
|
||||
spin_lock_nested(&dn->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
- list_move(&dn->d_u.d_child, &parent->d_subdirs);
|
||||
+ list_move(&dn->d_child, &parent->d_subdirs);
|
||||
spin_unlock(&dn->d_lock);
|
||||
spin_unlock(&parent->d_lock);
|
||||
}
|
||||
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
|
||||
index 7899a40465b3..6d1dd0942937 100644
|
||||
--- a/fs/cifs/inode.c
|
||||
+++ b/fs/cifs/inode.c
|
||||
@@ -887,7 +887,7 @@ inode_has_hashed_dentries(struct inode *inode)
|
||||
struct dentry *dentry;
|
||||
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
if (!d_unhashed(dentry) || IS_ROOT(dentry)) {
|
||||
spin_unlock(&inode->i_lock);
|
||||
return true;
|
||||
diff --git a/fs/coda/cache.c b/fs/coda/cache.c
|
||||
index 278f8fdeb9ef..46ee6f238985 100644
|
||||
--- a/fs/coda/cache.c
|
||||
+++ b/fs/coda/cache.c
|
||||
@@ -92,7 +92,7 @@ static void coda_flag_children(struct dentry *parent, int flag)
|
||||
struct dentry *de;
|
||||
|
||||
spin_lock(&parent->d_lock);
|
||||
- list_for_each_entry(de, &parent->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(de, &parent->d_subdirs, d_child) {
|
||||
/* don't know what to do with negative dentries */
|
||||
if (de->d_inode )
|
||||
coda_flag_inode(de->d_inode, flag);
|
||||
diff --git a/fs/dcache.c b/fs/dcache.c
|
||||
index 34b40be8af11..8d7c2b34cb3f 100644
|
||||
--- a/fs/dcache.c
|
||||
+++ b/fs/dcache.c
|
||||
@@ -44,7 +44,7 @@
|
||||
/*
|
||||
* Usage:
|
||||
* dcache->d_inode->i_lock protects:
|
||||
- * - i_dentry, d_alias, d_inode of aliases
|
||||
+ * - i_dentry, d_u.d_alias, d_inode of aliases
|
||||
* dcache_hash_bucket lock protects:
|
||||
* - the dcache hash table
|
||||
* s_anon bl list spinlock protects:
|
||||
@@ -59,7 +59,7 @@
|
||||
* - d_unhashed()
|
||||
* - d_parent and d_subdirs
|
||||
* - childrens' d_child and d_parent
|
||||
- * - d_alias, d_inode
|
||||
+ * - d_u.d_alias, d_inode
|
||||
*
|
||||
* Ordering:
|
||||
* dentry->d_inode->i_lock
|
||||
@@ -239,7 +239,6 @@ static void __d_free(struct rcu_head *head)
|
||||
{
|
||||
struct dentry *dentry = container_of(head, struct dentry, d_u.d_rcu);
|
||||
|
||||
- WARN_ON(!hlist_unhashed(&dentry->d_alias));
|
||||
if (dname_external(dentry))
|
||||
kfree(dentry->d_name.name);
|
||||
kmem_cache_free(dentry_cache, dentry);
|
||||
@@ -247,6 +246,7 @@ static void __d_free(struct rcu_head *head)
|
||||
|
||||
static void dentry_free(struct dentry *dentry)
|
||||
{
|
||||
+ WARN_ON(!hlist_unhashed(&dentry->d_u.d_alias));
|
||||
/* if dentry was never visible to RCU, immediate free is OK */
|
||||
if (!(dentry->d_flags & DCACHE_RCUACCESS))
|
||||
__d_free(&dentry->d_u.d_rcu);
|
||||
@@ -280,7 +280,7 @@ static void dentry_iput(struct dentry * dentry)
|
||||
struct inode *inode = dentry->d_inode;
|
||||
if (inode) {
|
||||
dentry->d_inode = NULL;
|
||||
- hlist_del_init(&dentry->d_alias);
|
||||
+ hlist_del_init(&dentry->d_u.d_alias);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
spin_unlock(&inode->i_lock);
|
||||
if (!inode->i_nlink)
|
||||
@@ -305,7 +305,7 @@ static void dentry_unlink_inode(struct dentry * dentry)
|
||||
struct inode *inode = dentry->d_inode;
|
||||
__d_clear_type(dentry);
|
||||
dentry->d_inode = NULL;
|
||||
- hlist_del_init(&dentry->d_alias);
|
||||
+ hlist_del_init(&dentry->d_u.d_alias);
|
||||
dentry_rcuwalk_barrier(dentry);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
spin_unlock(&inode->i_lock);
|
||||
@@ -465,7 +465,7 @@ static void __dentry_kill(struct dentry *dentry)
|
||||
}
|
||||
/* if it was on the hash then remove it */
|
||||
__d_drop(dentry);
|
||||
- list_del(&dentry->d_u.d_child);
|
||||
+ list_del(&dentry->d_child);
|
||||
/*
|
||||
* Inform d_walk() that we are no longer attached to the
|
||||
* dentry tree
|
||||
@@ -746,7 +746,7 @@ static struct dentry *__d_find_alias(struct inode *inode)
|
||||
|
||||
again:
|
||||
discon_alias = NULL;
|
||||
- hlist_for_each_entry(alias, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(alias, &inode->i_dentry, d_u.d_alias) {
|
||||
spin_lock(&alias->d_lock);
|
||||
if (S_ISDIR(inode->i_mode) || !d_unhashed(alias)) {
|
||||
if (IS_ROOT(alias) &&
|
||||
@@ -796,7 +796,7 @@ void d_prune_aliases(struct inode *inode)
|
||||
struct dentry *dentry;
|
||||
restart:
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
spin_lock(&dentry->d_lock);
|
||||
if (!dentry->d_lockref.count) {
|
||||
/*
|
||||
@@ -1081,7 +1081,7 @@ repeat:
|
||||
resume:
|
||||
while (next != &this_parent->d_subdirs) {
|
||||
struct list_head *tmp = next;
|
||||
- struct dentry *dentry = list_entry(tmp, struct dentry, d_u.d_child);
|
||||
+ struct dentry *dentry = list_entry(tmp, struct dentry, d_child);
|
||||
next = tmp->next;
|
||||
|
||||
spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
@@ -1133,7 +1133,7 @@ resume:
|
||||
goto rename_retry;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
- next = child->d_u.d_child.next;
|
||||
+ next = child->d_child.next;
|
||||
goto resume;
|
||||
}
|
||||
if (need_seqretry(&rename_lock, seq)) {
|
||||
@@ -1468,8 +1468,8 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
|
||||
INIT_HLIST_BL_NODE(&dentry->d_hash);
|
||||
INIT_LIST_HEAD(&dentry->d_lru);
|
||||
INIT_LIST_HEAD(&dentry->d_subdirs);
|
||||
- INIT_HLIST_NODE(&dentry->d_alias);
|
||||
- INIT_LIST_HEAD(&dentry->d_u.d_child);
|
||||
+ INIT_HLIST_NODE(&dentry->d_u.d_alias);
|
||||
+ INIT_LIST_HEAD(&dentry->d_child);
|
||||
d_set_d_op(dentry, dentry->d_sb->s_d_op);
|
||||
|
||||
this_cpu_inc(nr_dentry);
|
||||
@@ -1499,7 +1499,7 @@ struct dentry *d_alloc(struct dentry * parent, const struct qstr *name)
|
||||
*/
|
||||
__dget_dlock(parent);
|
||||
dentry->d_parent = parent;
|
||||
- list_add(&dentry->d_u.d_child, &parent->d_subdirs);
|
||||
+ list_add(&dentry->d_child, &parent->d_subdirs);
|
||||
spin_unlock(&parent->d_lock);
|
||||
|
||||
return dentry;
|
||||
@@ -1592,7 +1592,7 @@ static void __d_instantiate(struct dentry *dentry, struct inode *inode)
|
||||
spin_lock(&dentry->d_lock);
|
||||
__d_set_type(dentry, add_flags);
|
||||
if (inode)
|
||||
- hlist_add_head(&dentry->d_alias, &inode->i_dentry);
|
||||
+ hlist_add_head(&dentry->d_u.d_alias, &inode->i_dentry);
|
||||
dentry->d_inode = inode;
|
||||
dentry_rcuwalk_barrier(dentry);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
@@ -1616,7 +1616,7 @@ static void __d_instantiate(struct dentry *dentry, struct inode *inode)
|
||||
|
||||
void d_instantiate(struct dentry *entry, struct inode * inode)
|
||||
{
|
||||
- BUG_ON(!hlist_unhashed(&entry->d_alias));
|
||||
+ BUG_ON(!hlist_unhashed(&entry->d_u.d_alias));
|
||||
if (inode)
|
||||
spin_lock(&inode->i_lock);
|
||||
__d_instantiate(entry, inode);
|
||||
@@ -1655,7 +1655,7 @@ static struct dentry *__d_instantiate_unique(struct dentry *entry,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- hlist_for_each_entry(alias, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(alias, &inode->i_dentry, d_u.d_alias) {
|
||||
/*
|
||||
* Don't need alias->d_lock here, because aliases with
|
||||
* d_parent == entry->d_parent are not subject to name or
|
||||
@@ -1681,7 +1681,7 @@ struct dentry *d_instantiate_unique(struct dentry *entry, struct inode *inode)
|
||||
{
|
||||
struct dentry *result;
|
||||
|
||||
- BUG_ON(!hlist_unhashed(&entry->d_alias));
|
||||
+ BUG_ON(!hlist_unhashed(&entry->d_u.d_alias));
|
||||
|
||||
if (inode)
|
||||
spin_lock(&inode->i_lock);
|
||||
@@ -1712,7 +1712,7 @@ EXPORT_SYMBOL(d_instantiate_unique);
|
||||
*/
|
||||
int d_instantiate_no_diralias(struct dentry *entry, struct inode *inode)
|
||||
{
|
||||
- BUG_ON(!hlist_unhashed(&entry->d_alias));
|
||||
+ BUG_ON(!hlist_unhashed(&entry->d_u.d_alias));
|
||||
|
||||
spin_lock(&inode->i_lock);
|
||||
if (S_ISDIR(inode->i_mode) && !hlist_empty(&inode->i_dentry)) {
|
||||
@@ -1751,7 +1751,7 @@ static struct dentry * __d_find_any_alias(struct inode *inode)
|
||||
|
||||
if (hlist_empty(&inode->i_dentry))
|
||||
return NULL;
|
||||
- alias = hlist_entry(inode->i_dentry.first, struct dentry, d_alias);
|
||||
+ alias = hlist_entry(inode->i_dentry.first, struct dentry, d_u.d_alias);
|
||||
__dget(alias);
|
||||
return alias;
|
||||
}
|
||||
@@ -1813,7 +1813,7 @@ static struct dentry *__d_obtain_alias(struct inode *inode, int disconnected)
|
||||
spin_lock(&tmp->d_lock);
|
||||
tmp->d_inode = inode;
|
||||
tmp->d_flags |= add_flags;
|
||||
- hlist_add_head(&tmp->d_alias, &inode->i_dentry);
|
||||
+ hlist_add_head(&tmp->d_u.d_alias, &inode->i_dentry);
|
||||
hlist_bl_lock(&tmp->d_sb->s_anon);
|
||||
hlist_bl_add_head(&tmp->d_hash, &tmp->d_sb->s_anon);
|
||||
hlist_bl_unlock(&tmp->d_sb->s_anon);
|
||||
@@ -2248,7 +2248,7 @@ int d_validate(struct dentry *dentry, struct dentry *dparent)
|
||||
struct dentry *child;
|
||||
|
||||
spin_lock(&dparent->d_lock);
|
||||
- list_for_each_entry(child, &dparent->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &dparent->d_subdirs, d_child) {
|
||||
if (dentry == child) {
|
||||
spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
__dget_dlock(dentry);
|
||||
@@ -2525,13 +2525,13 @@ static void __d_move(struct dentry *dentry, struct dentry *target,
|
||||
/* splicing a tree */
|
||||
dentry->d_parent = target->d_parent;
|
||||
target->d_parent = target;
|
||||
- list_del_init(&target->d_u.d_child);
|
||||
- list_move(&dentry->d_u.d_child, &dentry->d_parent->d_subdirs);
|
||||
+ list_del_init(&target->d_child);
|
||||
+ list_move(&dentry->d_child, &dentry->d_parent->d_subdirs);
|
||||
} else {
|
||||
/* swapping two dentries */
|
||||
swap(dentry->d_parent, target->d_parent);
|
||||
- list_move(&target->d_u.d_child, &target->d_parent->d_subdirs);
|
||||
- list_move(&dentry->d_u.d_child, &dentry->d_parent->d_subdirs);
|
||||
+ list_move(&target->d_child, &target->d_parent->d_subdirs);
|
||||
+ list_move(&dentry->d_child, &dentry->d_parent->d_subdirs);
|
||||
if (exchange)
|
||||
fsnotify_d_move(target);
|
||||
fsnotify_d_move(dentry);
|
||||
@@ -3322,7 +3322,7 @@ void d_tmpfile(struct dentry *dentry, struct inode *inode)
|
||||
{
|
||||
inode_dec_link_count(inode);
|
||||
BUG_ON(dentry->d_name.name != dentry->d_iname ||
|
||||
- !hlist_unhashed(&dentry->d_alias) ||
|
||||
+ !hlist_unhashed(&dentry->d_u.d_alias) ||
|
||||
!d_unlinked(dentry));
|
||||
spin_lock(&dentry->d_parent->d_lock);
|
||||
spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
|
||||
index 1e3b99d3db0d..05f2960ed7c3 100644
|
||||
--- a/fs/debugfs/inode.c
|
||||
+++ b/fs/debugfs/inode.c
|
||||
@@ -553,7 +553,7 @@ void debugfs_remove_recursive(struct dentry *dentry)
|
||||
* use the d_u.d_child as the rcu head and corrupt this list.
|
||||
*/
|
||||
spin_lock(&parent->d_lock);
|
||||
- list_for_each_entry(child, &parent->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &parent->d_subdirs, d_child) {
|
||||
if (!debugfs_positive(child))
|
||||
continue;
|
||||
|
||||
diff --git a/fs/exportfs/expfs.c b/fs/exportfs/expfs.c
|
||||
index b01fbfb51f43..a3aa6baad1a1 100644
|
||||
--- a/fs/exportfs/expfs.c
|
||||
+++ b/fs/exportfs/expfs.c
|
||||
@@ -50,7 +50,7 @@ find_acceptable_alias(struct dentry *result,
|
||||
|
||||
inode = result->d_inode;
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
dget(dentry);
|
||||
spin_unlock(&inode->i_lock);
|
||||
if (toput)
|
||||
diff --git a/fs/libfs.c b/fs/libfs.c
|
||||
index 88e3e00e2eca..e801b983b46b 100644
|
||||
--- a/fs/libfs.c
|
||||
+++ b/fs/libfs.c
|
||||
@@ -114,18 +114,18 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int whence)
|
||||
|
||||
spin_lock(&dentry->d_lock);
|
||||
/* d_lock not required for cursor */
|
||||
- list_del(&cursor->d_u.d_child);
|
||||
+ list_del(&cursor->d_child);
|
||||
p = dentry->d_subdirs.next;
|
||||
while (n && p != &dentry->d_subdirs) {
|
||||
struct dentry *next;
|
||||
- next = list_entry(p, struct dentry, d_u.d_child);
|
||||
+ next = list_entry(p, struct dentry, d_child);
|
||||
spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
if (simple_positive(next))
|
||||
n--;
|
||||
spin_unlock(&next->d_lock);
|
||||
p = p->next;
|
||||
}
|
||||
- list_add_tail(&cursor->d_u.d_child, p);
|
||||
+ list_add_tail(&cursor->d_child, p);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
}
|
||||
}
|
||||
@@ -150,7 +150,7 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
|
||||
{
|
||||
struct dentry *dentry = file->f_path.dentry;
|
||||
struct dentry *cursor = file->private_data;
|
||||
- struct list_head *p, *q = &cursor->d_u.d_child;
|
||||
+ struct list_head *p, *q = &cursor->d_child;
|
||||
|
||||
if (!dir_emit_dots(file, ctx))
|
||||
return 0;
|
||||
@@ -159,7 +159,7 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
|
||||
list_move(q, &dentry->d_subdirs);
|
||||
|
||||
for (p = q->next; p != &dentry->d_subdirs; p = p->next) {
|
||||
- struct dentry *next = list_entry(p, struct dentry, d_u.d_child);
|
||||
+ struct dentry *next = list_entry(p, struct dentry, d_child);
|
||||
spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
if (!simple_positive(next)) {
|
||||
spin_unlock(&next->d_lock);
|
||||
@@ -287,7 +287,7 @@ int simple_empty(struct dentry *dentry)
|
||||
int ret = 0;
|
||||
|
||||
spin_lock(&dentry->d_lock);
|
||||
- list_for_each_entry(child, &dentry->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &dentry->d_subdirs, d_child) {
|
||||
spin_lock_nested(&child->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
if (simple_positive(child)) {
|
||||
spin_unlock(&child->d_lock);
|
||||
diff --git a/fs/ncpfs/dir.c b/fs/ncpfs/dir.c
|
||||
index 08b8ea8c353e..3a8ed0fb07be 100644
|
||||
--- a/fs/ncpfs/dir.c
|
||||
+++ b/fs/ncpfs/dir.c
|
||||
@@ -406,7 +406,7 @@ ncp_dget_fpos(struct dentry *dentry, struct dentry *parent, unsigned long fpos)
|
||||
spin_lock(&parent->d_lock);
|
||||
next = parent->d_subdirs.next;
|
||||
while (next != &parent->d_subdirs) {
|
||||
- dent = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ dent = list_entry(next, struct dentry, d_child);
|
||||
if ((unsigned long)dent->d_fsdata == fpos) {
|
||||
if (dent->d_inode)
|
||||
dget(dent);
|
||||
diff --git a/fs/ncpfs/ncplib_kernel.h b/fs/ncpfs/ncplib_kernel.h
|
||||
index 32c06587351a..6d5e7c56c79d 100644
|
||||
--- a/fs/ncpfs/ncplib_kernel.h
|
||||
+++ b/fs/ncpfs/ncplib_kernel.h
|
||||
@@ -194,7 +194,7 @@ ncp_renew_dentries(struct dentry *parent)
|
||||
spin_lock(&parent->d_lock);
|
||||
next = parent->d_subdirs.next;
|
||||
while (next != &parent->d_subdirs) {
|
||||
- dentry = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ dentry = list_entry(next, struct dentry, d_child);
|
||||
|
||||
if (dentry->d_fsdata == NULL)
|
||||
ncp_age_dentry(server, dentry);
|
||||
@@ -216,7 +216,7 @@ ncp_invalidate_dircache_entries(struct dentry *parent)
|
||||
spin_lock(&parent->d_lock);
|
||||
next = parent->d_subdirs.next;
|
||||
while (next != &parent->d_subdirs) {
|
||||
- dentry = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ dentry = list_entry(next, struct dentry, d_child);
|
||||
dentry->d_fsdata = NULL;
|
||||
ncp_age_dentry(server, dentry);
|
||||
next = next->next;
|
||||
diff --git a/fs/nfs/getroot.c b/fs/nfs/getroot.c
|
||||
index 880618a8b048..ebc6a0add5ae 100644
|
||||
--- a/fs/nfs/getroot.c
|
||||
+++ b/fs/nfs/getroot.c
|
||||
@@ -58,7 +58,7 @@ static int nfs_superblock_set_dummy_root(struct super_block *sb, struct inode *i
|
||||
*/
|
||||
spin_lock(&sb->s_root->d_inode->i_lock);
|
||||
spin_lock(&sb->s_root->d_lock);
|
||||
- hlist_del_init(&sb->s_root->d_alias);
|
||||
+ hlist_del_init(&sb->s_root->d_u.d_alias);
|
||||
spin_unlock(&sb->s_root->d_lock);
|
||||
spin_unlock(&sb->s_root->d_inode->i_lock);
|
||||
}
|
||||
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
|
||||
index 9d3e9c50066a..700129940c6e 100644
|
||||
--- a/fs/notify/fsnotify.c
|
||||
+++ b/fs/notify/fsnotify.c
|
||||
@@ -63,14 +63,14 @@ void __fsnotify_update_child_dentry_flags(struct inode *inode)
|
||||
spin_lock(&inode->i_lock);
|
||||
/* run all of the dentries associated with this inode. Since this is a
|
||||
* directory, there damn well better only be one item on this list */
|
||||
- hlist_for_each_entry(alias, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(alias, &inode->i_dentry, d_u.d_alias) {
|
||||
struct dentry *child;
|
||||
|
||||
/* run all of the children of the original inode and fix their
|
||||
* d_flags to indicate parental interest (their parent is the
|
||||
* original inode) */
|
||||
spin_lock(&alias->d_lock);
|
||||
- list_for_each_entry(child, &alias->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &alias->d_subdirs, d_child) {
|
||||
if (!child->d_inode)
|
||||
continue;
|
||||
|
||||
diff --git a/fs/ocfs2/dcache.c b/fs/ocfs2/dcache.c
|
||||
index e2e05a106beb..92edcfc23c1c 100644
|
||||
--- a/fs/ocfs2/dcache.c
|
||||
+++ b/fs/ocfs2/dcache.c
|
||||
@@ -172,7 +172,7 @@ struct dentry *ocfs2_find_local_alias(struct inode *inode,
|
||||
struct dentry *dentry;
|
||||
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
spin_lock(&dentry->d_lock);
|
||||
if (ocfs2_match_dentry(dentry, parent_blkno, skip_unhashed)) {
|
||||
trace_ocfs2_find_local_alias(dentry->d_name.len,
|
||||
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
|
||||
index 75a227cc7ce2..82b5d1c2b856 100644
|
||||
--- a/include/linux/dcache.h
|
||||
+++ b/include/linux/dcache.h
|
||||
@@ -125,15 +125,15 @@ struct dentry {
|
||||
void *d_fsdata; /* fs-specific data */
|
||||
|
||||
struct list_head d_lru; /* LRU list */
|
||||
+ struct list_head d_child; /* child of parent list */
|
||||
+ struct list_head d_subdirs; /* our children */
|
||||
/*
|
||||
- * d_child and d_rcu can share memory
|
||||
+ * d_alias and d_rcu can share memory
|
||||
*/
|
||||
union {
|
||||
- struct list_head d_child; /* child of parent list */
|
||||
+ struct hlist_node d_alias; /* inode alias list */
|
||||
struct rcu_head d_rcu;
|
||||
} d_u;
|
||||
- struct list_head d_subdirs; /* our children */
|
||||
- struct hlist_node d_alias; /* inode alias list */
|
||||
};
|
||||
|
||||
/*
|
||||
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
|
||||
index 15209335888d..09acba6e908a 100644
|
||||
--- a/kernel/trace/trace.c
|
||||
+++ b/kernel/trace/trace.c
|
||||
@@ -6411,7 +6411,7 @@ static int instance_mkdir (struct inode *inode, struct dentry *dentry, umode_t m
|
||||
int ret;
|
||||
|
||||
/* Paranoid: Make sure the parent is the "instances" directory */
|
||||
- parent = hlist_entry(inode->i_dentry.first, struct dentry, d_alias);
|
||||
+ parent = hlist_entry(inode->i_dentry.first, struct dentry, d_u.d_alias);
|
||||
if (WARN_ON_ONCE(parent != trace_instance_dir))
|
||||
return -ENOENT;
|
||||
|
||||
@@ -6438,7 +6438,7 @@ static int instance_rmdir(struct inode *inode, struct dentry *dentry)
|
||||
int ret;
|
||||
|
||||
/* Paranoid: Make sure the parent is the "instances" directory */
|
||||
- parent = hlist_entry(inode->i_dentry.first, struct dentry, d_alias);
|
||||
+ parent = hlist_entry(inode->i_dentry.first, struct dentry, d_u.d_alias);
|
||||
if (WARN_ON_ONCE(parent != trace_instance_dir))
|
||||
return -ENOENT;
|
||||
|
||||
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
|
||||
index ef06ce7e9cf8..85f9d33b4ad8 100644
|
||||
--- a/kernel/trace/trace_events.c
|
||||
+++ b/kernel/trace/trace_events.c
|
||||
@@ -461,7 +461,7 @@ static void remove_event_file_dir(struct ftrace_event_file *file)
|
||||
|
||||
if (dir) {
|
||||
spin_lock(&dir->d_lock); /* probably unneeded */
|
||||
- list_for_each_entry(child, &dir->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &dir->d_subdirs, d_child) {
|
||||
if (child->d_inode) /* probably unneeded */
|
||||
child->d_inode->i_private = NULL;
|
||||
}
|
||||
diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
|
||||
index c71737f6d1cc..33db1ad4fd10 100644
|
||||
--- a/security/selinux/selinuxfs.c
|
||||
+++ b/security/selinux/selinuxfs.c
|
||||
@@ -1200,7 +1200,7 @@ static void sel_remove_entries(struct dentry *de)
|
||||
spin_lock(&de->d_lock);
|
||||
node = de->d_subdirs.next;
|
||||
while (node != &de->d_subdirs) {
|
||||
- struct dentry *d = list_entry(node, struct dentry, d_u.d_child);
|
||||
+ struct dentry *d = list_entry(node, struct dentry, d_child);
|
||||
|
||||
spin_lock_nested(&d->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
list_del_init(node);
|
||||
@@ -1674,12 +1674,12 @@ static void sel_remove_classes(void)
|
||||
|
||||
list_for_each(class_node, &class_dir->d_subdirs) {
|
||||
struct dentry *class_subdir = list_entry(class_node,
|
||||
- struct dentry, d_u.d_child);
|
||||
+ struct dentry, d_child);
|
||||
struct list_head *class_subdir_node;
|
||||
|
||||
list_for_each(class_subdir_node, &class_subdir->d_subdirs) {
|
||||
struct dentry *d = list_entry(class_subdir_node,
|
||||
- struct dentry, d_u.d_child);
|
||||
+ struct dentry, d_child);
|
||||
|
||||
if (d->d_inode)
|
||||
if (d->d_inode->i_mode & S_IFDIR)
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
From: Kyle McMartin <kmcmarti@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 15:11:01 -0400
|
||||
Subject: [PATCH] perf: install trace-event plugins
|
||||
|
||||
perf hardcodes $libdir to be lib for all but x86_64, so kludge around it
|
||||
until upstream gets their act together.
|
||||
---
|
||||
tools/perf/config/Makefile | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
|
||||
index 86c21a24da46..bf0fe97bd358 100644
|
||||
--- a/tools/perf/config/Makefile
|
||||
+++ b/tools/perf/config/Makefile
|
||||
@@ -642,8 +642,12 @@ endif
|
||||
ifeq ($(IS_X86_64),1)
|
||||
lib = lib64
|
||||
else
|
||||
+ifdef MULTILIBDIR
|
||||
+lib = $(MULTILIBDIR)
|
||||
+else
|
||||
lib = lib
|
||||
endif
|
||||
+endif
|
||||
libdir = $(prefix)/$(lib)
|
||||
|
||||
# Shell quote (do not use $(call) to accommodate ancient setups);
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Mon, 6 Oct 2014 15:15:15 +0100
|
||||
Subject: [PATCH] ppc64-fixtools
|
||||
|
||||
Build tools on ppc64le (rhbz 1138884), Some minor ppc64 cleanups
|
||||
---
|
||||
tools/perf/arch/powerpc/util/skip-callchain-idx.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tools/perf/arch/powerpc/util/skip-callchain-idx.c b/tools/perf/arch/powerpc/util/skip-callchain-idx.c
|
||||
index a7c23a4b3778..d73ef8bb08c7 100644
|
||||
--- a/tools/perf/arch/powerpc/util/skip-callchain-idx.c
|
||||
+++ b/tools/perf/arch/powerpc/util/skip-callchain-idx.c
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "util/thread.h"
|
||||
#include "util/callchain.h"
|
||||
+#include "util/debug.h"
|
||||
|
||||
/*
|
||||
* When saving the callchain on Power, the kernel conservatively saves
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 27 Jun 2014 18:46:42 +0200
|
||||
Subject: [PATCH] psmouse: Add psmouse_matches_pnp_id helper function
|
||||
|
||||
The matches_pnp_id function from the synaptics driver is useful for other
|
||||
drivers too. Make it a generic psmouse helper function.
|
||||
|
||||
Bugzilla: 1110011
|
||||
Upstream-status: sent for 3.17/3.18
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/input/mouse/psmouse-base.c | 14 ++++++++++++++
|
||||
drivers/input/mouse/psmouse.h | 1 +
|
||||
drivers/input/mouse/synaptics.c | 17 +++--------------
|
||||
3 files changed, 18 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
|
||||
index b4e1f014ddc2..02e68c3008a3 100644
|
||||
--- a/drivers/input/mouse/psmouse-base.c
|
||||
+++ b/drivers/input/mouse/psmouse-base.c
|
||||
@@ -462,6 +462,20 @@ static int psmouse_poll(struct psmouse *psmouse)
|
||||
PSMOUSE_CMD_POLL | (psmouse->pktsize << 8));
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * psmouse_matches_pnp_id - check if psmouse matches one of the passed in ids.
|
||||
+ */
|
||||
+bool psmouse_matches_pnp_id(struct psmouse *psmouse, const char * const ids[])
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ if (!strncmp(psmouse->ps2dev.serio->firmware_id, "PNP:", 4))
|
||||
+ for (i = 0; ids[i]; i++)
|
||||
+ if (strstr(psmouse->ps2dev.serio->firmware_id, ids[i]))
|
||||
+ return true;
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
|
||||
/*
|
||||
* Genius NetMouse magic init.
|
||||
diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
|
||||
index 2f0b39d59a9b..f4cf664c7db3 100644
|
||||
--- a/drivers/input/mouse/psmouse.h
|
||||
+++ b/drivers/input/mouse/psmouse.h
|
||||
@@ -108,6 +108,7 @@ void psmouse_set_resolution(struct psmouse *psmouse, unsigned int resolution);
|
||||
psmouse_ret_t psmouse_process_byte(struct psmouse *psmouse);
|
||||
int psmouse_activate(struct psmouse *psmouse);
|
||||
int psmouse_deactivate(struct psmouse *psmouse);
|
||||
+bool psmouse_matches_pnp_id(struct psmouse *psmouse, const char * const ids[]);
|
||||
|
||||
struct psmouse_attribute {
|
||||
struct device_attribute dattr;
|
||||
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
|
||||
index 3ebfb0386300..f9472920d986 100644
|
||||
--- a/drivers/input/mouse/synaptics.c
|
||||
+++ b/drivers/input/mouse/synaptics.c
|
||||
@@ -190,18 +190,6 @@ static const char * const topbuttonpad_pnp_ids[] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
-static bool matches_pnp_id(struct psmouse *psmouse, const char * const ids[])
|
||||
-{
|
||||
- int i;
|
||||
-
|
||||
- if (!strncmp(psmouse->ps2dev.serio->firmware_id, "PNP:", 4))
|
||||
- for (i = 0; ids[i]; i++)
|
||||
- if (strstr(psmouse->ps2dev.serio->firmware_id, ids[i]))
|
||||
- return true;
|
||||
-
|
||||
- return false;
|
||||
-}
|
||||
-
|
||||
/*****************************************************************************
|
||||
* Synaptics communications functions
|
||||
****************************************************************************/
|
||||
@@ -367,7 +355,8 @@ static int synaptics_resolution(struct psmouse *psmouse)
|
||||
}
|
||||
|
||||
for (i = 0; min_max_pnpid_table[i].pnp_ids; i++) {
|
||||
- if (matches_pnp_id(psmouse, min_max_pnpid_table[i].pnp_ids)) {
|
||||
+ if (psmouse_matches_pnp_id(psmouse,
|
||||
+ min_max_pnpid_table[i].pnp_ids)) {
|
||||
priv->x_min = min_max_pnpid_table[i].x_min;
|
||||
priv->x_max = min_max_pnpid_table[i].x_max;
|
||||
priv->y_min = min_max_pnpid_table[i].y_min;
|
||||
@@ -1499,7 +1488,7 @@ static void set_input_params(struct psmouse *psmouse,
|
||||
|
||||
if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) {
|
||||
__set_bit(INPUT_PROP_BUTTONPAD, dev->propbit);
|
||||
- if (matches_pnp_id(psmouse, topbuttonpad_pnp_ids))
|
||||
+ if (psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids))
|
||||
__set_bit(INPUT_PROP_TOPBUTTONPAD, dev->propbit);
|
||||
/* Clickpads report only left button */
|
||||
__clear_bit(BTN_RIGHT, dev->keybit);
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,157 +0,0 @@
|
|||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 27 Jun 2014 18:50:33 +0200
|
||||
Subject: [PATCH] psmouse: Add support for detecting FocalTech PS/2 touchpads
|
||||
|
||||
The Asus X450 and X550 laptops use a PS/2 touchpad from a new manufacturer
|
||||
called FocalTech:
|
||||
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=77391
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1110011
|
||||
|
||||
The protocol for these devices is not known at this time, but even without
|
||||
knowing the protocol they need some special handling. They get upset by some
|
||||
of our other PS/2 device probing, and once upset generate random mouse events
|
||||
making things unusable even with an external mouse.
|
||||
|
||||
This patch adds detection of these devices based on their pnp ids, and when
|
||||
they are detected, treats them as a bare ps/2 mouse. Doing things this way
|
||||
they at least work in their ps/2 mouse emulation mode.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/input/mouse/Makefile | 2 +-
|
||||
drivers/input/mouse/focaltech.c | 44 ++++++++++++++++++++++++++++++++++++++
|
||||
drivers/input/mouse/focaltech.h | 21 ++++++++++++++++++
|
||||
drivers/input/mouse/psmouse-base.c | 10 +++++++++
|
||||
4 files changed, 76 insertions(+), 1 deletion(-)
|
||||
create mode 100644 drivers/input/mouse/focaltech.c
|
||||
create mode 100644 drivers/input/mouse/focaltech.h
|
||||
|
||||
diff --git a/drivers/input/mouse/Makefile b/drivers/input/mouse/Makefile
|
||||
index c25efdb3f288..dda507f8b3a2 100644
|
||||
--- a/drivers/input/mouse/Makefile
|
||||
+++ b/drivers/input/mouse/Makefile
|
||||
@@ -23,7 +23,7 @@ obj-$(CONFIG_MOUSE_SYNAPTICS_I2C) += synaptics_i2c.o
|
||||
obj-$(CONFIG_MOUSE_SYNAPTICS_USB) += synaptics_usb.o
|
||||
obj-$(CONFIG_MOUSE_VSXXXAA) += vsxxxaa.o
|
||||
|
||||
-psmouse-objs := psmouse-base.o synaptics.o
|
||||
+psmouse-objs := psmouse-base.o synaptics.o focaltech.o
|
||||
|
||||
psmouse-$(CONFIG_MOUSE_PS2_ALPS) += alps.o
|
||||
psmouse-$(CONFIG_MOUSE_PS2_ELANTECH) += elantech.o
|
||||
diff --git a/drivers/input/mouse/focaltech.c b/drivers/input/mouse/focaltech.c
|
||||
new file mode 100644
|
||||
index 000000000000..d83a23554d63
|
||||
--- /dev/null
|
||||
+++ b/drivers/input/mouse/focaltech.c
|
||||
@@ -0,0 +1,44 @@
|
||||
+/*
|
||||
+ * Focaltech TouchPad PS/2 mouse driver
|
||||
+ *
|
||||
+ * Copyright (c) 2014 Red Hat Inc.
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * Red Hat authors:
|
||||
+ *
|
||||
+ * Hans de Goede <hdegoede@redhat.com>
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * The Focaltech PS/2 touchpad protocol is unknown. This drivers deals with
|
||||
+ * detection only, to avoid further detection attempts confusing the touchpad
|
||||
+ * this way it at least works in PS/2 mouse compatibility mode.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/device.h>
|
||||
+#include <linux/libps2.h>
|
||||
+#include "psmouse.h"
|
||||
+
|
||||
+static const char * const focaltech_pnp_ids[] = {
|
||||
+ "FLT0101",
|
||||
+ "FLT0102",
|
||||
+ "FLT0103",
|
||||
+ NULL
|
||||
+};
|
||||
+
|
||||
+int focaltech_detect(struct psmouse *psmouse, bool set_properties)
|
||||
+{
|
||||
+ if (!psmouse_matches_pnp_id(psmouse, focaltech_pnp_ids))
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ if (set_properties) {
|
||||
+ psmouse->vendor = "FocalTech";
|
||||
+ psmouse->name = "FocalTech Touchpad in mouse emulation mode";
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/drivers/input/mouse/focaltech.h b/drivers/input/mouse/focaltech.h
|
||||
new file mode 100644
|
||||
index 000000000000..0d0fc49451fe
|
||||
--- /dev/null
|
||||
+++ b/drivers/input/mouse/focaltech.h
|
||||
@@ -0,0 +1,21 @@
|
||||
+/*
|
||||
+ * Focaltech TouchPad PS/2 mouse driver
|
||||
+ *
|
||||
+ * Copyright (c) 2014 Red Hat Inc.
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * Red Hat authors:
|
||||
+ *
|
||||
+ * Hans de Goede <hdegoede@redhat.com>
|
||||
+ */
|
||||
+
|
||||
+#ifndef _FOCALTECH_H
|
||||
+#define _FOCALTECH_H
|
||||
+
|
||||
+int focaltech_detect(struct psmouse *psmouse, bool set_properties);
|
||||
+
|
||||
+#endif
|
||||
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
|
||||
index 02e68c3008a3..2c8c8e2172a2 100644
|
||||
--- a/drivers/input/mouse/psmouse-base.c
|
||||
+++ b/drivers/input/mouse/psmouse-base.c
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "elantech.h"
|
||||
#include "sentelic.h"
|
||||
#include "cypress_ps2.h"
|
||||
+#include "focaltech.h"
|
||||
|
||||
#define DRIVER_DESC "PS/2 mouse driver"
|
||||
|
||||
@@ -722,6 +723,13 @@ static int psmouse_extensions(struct psmouse *psmouse,
|
||||
{
|
||||
bool synaptics_hardware = false;
|
||||
|
||||
+/* Always check for focaltech, this is safe as it uses pnp-id matching */
|
||||
+ if (psmouse_do_detect(focaltech_detect, psmouse, set_properties) == 0) {
|
||||
+ /* Not supported yet, use bare protocol */
|
||||
+ psmouse_max_proto = max_proto = PSMOUSE_PS2;
|
||||
+ goto reset_to_defaults;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* We always check for lifebook because it does not disturb mouse
|
||||
* (it only checks DMI information).
|
||||
@@ -873,6 +881,8 @@ static int psmouse_extensions(struct psmouse *psmouse,
|
||||
}
|
||||
}
|
||||
|
||||
+reset_to_defaults:
|
||||
+
|
||||
/*
|
||||
* Reset to defaults in case the device got confused by extended
|
||||
* protocol probes. Note that we follow up with full reset because
|
||||
--
|
||||
2.1.0
|
||||
|
6
sources
6
sources
|
@ -1,3 +1,3 @@
|
|||
fb30d0f29214d75cddd2faa94f73d5cf linux-3.17.tar.xz
|
||||
159e969cbc27201d8e2fa0f609dc722f perf-man-3.17.tar.gz
|
||||
4ea1c0e18b18406bcd248bf06b95aec3 patch-3.17.8.xz
|
||||
9e854df51ca3fef8bfe566dbd7b89241 linux-3.18.tar.xz
|
||||
813ccb96f0b379d656e57442c2587ca3 perf-man-3.18.tar.gz
|
||||
82864000fde42252dd5e80cceb971479 patch-3.18.1.xz
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
From: Kyle McMartin <kyle@redhat.com>
|
||||
Date: Thu, 18 Dec 2014 12:57:14 -0500
|
||||
Subject: [PATCH] uapi/linux/target_core_user.h: fix headers_install.sh badness
|
||||
|
||||
scripts/headers_install.sh will transform __packed to
|
||||
__attribute__((packed)), so the #ifndef is not necessary.
|
||||
(and, in fact, it's problematic, because we'll end up with the header
|
||||
containing:
|
||||
#ifndef __attribute__((packed))
|
||||
#define __attribu...
|
||||
and so forth.)
|
||||
|
||||
Cc: stable@vger.kernel.org # 3.18
|
||||
Signed-off-by: Kyle McMartin <kyle@redhat.com>
|
||||
---
|
||||
include/uapi/linux/target_core_user.h | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/include/uapi/linux/target_core_user.h b/include/uapi/linux/target_core_user.h
|
||||
index 7dcfbe6771b1..b483d1909d3e 100644
|
||||
--- a/include/uapi/linux/target_core_user.h
|
||||
+++ b/include/uapi/linux/target_core_user.h
|
||||
@@ -6,10 +6,6 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/uio.h>
|
||||
|
||||
-#ifndef __packed
|
||||
-#define __packed __attribute__((packed))
|
||||
-#endif
|
||||
-
|
||||
#define TCMU_VERSION "1.0"
|
||||
|
||||
/*
|
||||
--
|
||||
2.1.0
|
||||
|
Loading…
Reference in New Issue