Linux v4.14-rc1

This commit is contained in:
Justin M. Forbes 2017-09-18 14:14:22 -05:00
parent 77c153240f
commit ab0c52a53b
33 changed files with 480 additions and 76 deletions

View File

@ -1,53 +0,0 @@
From 2a99775c336303d2efc43eab4f24b34722a28faa Mon Sep 17 00:00:00 2001
From: "Sergei A. Trusov" <sergei.a.trusov@ya.ru>
Date: Tue, 20 Jun 2017 18:08:35 +0200
Subject: [PATCH 11/16] Input: goodix: Add support for capacitive home button
On some x86 tablets with a Goodix touchscreen, the Windows logo on the
front is a capacitive home button. Touching this button results in a touch
with bit 4 of the first byte set, while only the lower 4 bits (0-3) are
used to indicate the number of touches.
Report a KEY_LEFTMETA press when this happens.
Note that the hardware might support more than one button, in which
case the "id" byte of coor_data would identify the button in question.
This is not implemented as we don't have access to hardware with
multiple buttons.
Signed-off-by: Sergei A. Trusov <sergei.a.trusov@ya.ru>
Acked-by: Bastien Nocera <hadess@hadess.net>
---
drivers/input/touchscreen/goodix.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
index 240b16f3ee97..903137d9cf7d 100644
--- a/drivers/input/touchscreen/goodix.c
+++ b/drivers/input/touchscreen/goodix.c
@@ -267,6 +267,12 @@ static void goodix_process_events(struct goodix_ts_data *ts)
if (touch_num < 0)
return;
+ /*
+ * Bit 4 of the first byte reports the status of the capacitive
+ * Windows/Home button.
+ */
+ input_report_key(ts->input_dev, KEY_LEFTMETA, !!(point_data[0] & BIT(4)));
+
for (i = 0; i < touch_num; i++)
goodix_ts_report_touch(ts,
&point_data[1 + GOODIX_CONTACT_SIZE * i]);
@@ -612,6 +618,9 @@ static int goodix_request_input_dev(struct goodix_ts_data *ts)
ts->input_dev->id.product = ts->id;
ts->input_dev->id.version = ts->version;
+ /* Capacitive Windows/Home button on some devices */
+ input_set_capability(ts->input_dev, EV_KEY, KEY_LEFTMETA);
+
error = input_register_device(ts->input_dev);
if (error) {
dev_err(&ts->client->dev,
--
2.13.0

View File

@ -0,0 +1,74 @@
From patchwork Sun Jul 23 01:15:09 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: HID: rmi: Make sure the HID device is opened on resume
From: Lyude <lyude@redhat.com>
X-Patchwork-Id: 9858267
Message-Id: <20170723011509.23651-1-lyude@redhat.com>
To: linux-input@vger.kernel.org
Cc: Lyude <lyude@redhat.com>, Andrew Duggan <aduggan@synaptics.com>,
stable@vger.kernel.org, Jiri Kosina <jikos@kernel.org>,
Benjamin Tissoires <benjamin.tissoires@redhat.com>,
linux-kernel@vger.kernel.org
Date: Sat, 22 Jul 2017 21:15:09 -0400
So it looks like that suspend/resume has actually always been broken on
hid-rmi. The fact it worked was a rather silly coincidence that was
relying on the HID device to already be opened upon resume. This means
that so long as anything was reading the /dev/input/eventX node for for
an RMI device, it would suspend and resume correctly. As well, if
nothing happened to be keeping the HID device away it would shut off,
then the RMI driver would get confused on resume when it stopped
responding and explode.
So, call hid_hw_open() in rmi_post_resume() so we make sure that the
device is alive before we try talking to it.
This fixes RMI device suspend/resume over HID.
Signed-off-by: Lyude <lyude@redhat.com>
Cc: Andrew Duggan <aduggan@synaptics.com>
Cc: stable@vger.kernel.org
---
drivers/hid/hid-rmi.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
index 5b40c2614599..e7d124f9a27f 100644
--- a/drivers/hid/hid-rmi.c
+++ b/drivers/hid/hid-rmi.c
@@ -431,22 +431,29 @@ static int rmi_post_resume(struct hid_device *hdev)
{
struct rmi_data *data = hid_get_drvdata(hdev);
struct rmi_device *rmi_dev = data->xport.rmi_dev;
- int ret;
+ int ret = 0;
if (!(data->device_flags & RMI_DEVICE))
return 0;
- ret = rmi_reset_attn_mode(hdev);
+ /* Make sure the HID device is ready to receive events */
+ ret = hid_hw_open(hdev);
if (ret)
return ret;
+ ret = rmi_reset_attn_mode(hdev);
+ if (ret)
+ goto out;
+
ret = rmi_driver_resume(rmi_dev, false);
if (ret) {
hid_warn(hdev, "Failed to resume device: %d\n", ret);
- return ret;
+ goto out;
}
- return 0;
+out:
+ hid_hw_close(hdev);
+ return ret;
}
#endif /* CONFIG_PM */

View File

@ -0,0 +1 @@
# CONFIG_INPUT_PWM_VIBRA is not set

View File

@ -0,0 +1 @@
CONFIG_SQUASHFS_ZSTD=y

View File

@ -0,0 +1 @@
CONFIG_ARM_TEGRA186_CPUFREQ=m

View File

@ -0,0 +1 @@
# CONFIG_MFD_BD9571MWV is not set

View File

@ -0,0 +1 @@
# CONFIG_MFD_RTSX_USB is not set

View File

@ -0,0 +1 @@
# CONFIG_MFD_TPS68470 is not set

View File

@ -0,0 +1 @@
# CONFIG_MFD_VIPERBOARD is not set

View File

@ -0,0 +1,331 @@
From 47c84357d95eccd77c1320b4bca74bbec649ef3c Mon Sep 17 00:00:00 2001
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date: Mon, 3 Apr 2017 18:18:21 +0200
Subject: [PATCH] Input: rmi4 - remove the need for artificial IRQ in case of
HID
The IRQ from rmi4 may interfere with the one we currently use on i2c-hid.
Given that there is already a need for an external API from rmi4 to
forward the attention data, we can, in this particular case rely on a
separate workqueue to prevent cursor jumps.
Reported-by: Cameron Gutman <aicommander@gmail.com>
Reported-by: Thorsten Leemhuis <linux@leemhuis.info>
Reported-by: Jason Ekstrand <jason@jlekstrand.net>
Tested-by: Andrew Duggan <aduggan@synaptics.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Lyude <lyude@redhat.com>
---
drivers/hid/hid-rmi.c | 64 ---------------------
drivers/input/rmi4/rmi_driver.c | 122 ++++++++++++++++++++++++----------------
include/linux/rmi.h | 1 +
3 files changed, 75 insertions(+), 112 deletions(-)
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
index 5b40c26..4aa882c 100644
--- a/drivers/hid/hid-rmi.c
+++ b/drivers/hid/hid-rmi.c
@@ -316,19 +316,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size)
{
struct rmi_data *hdata = hid_get_drvdata(hdev);
struct rmi_device *rmi_dev = hdata->xport.rmi_dev;
- unsigned long flags;
if (!(test_bit(RMI_STARTED, &hdata->flags)))
return 0;
- local_irq_save(flags);
-
rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2);
- generic_handle_irq(hdata->rmi_irq);
-
- local_irq_restore(flags);
-
return 1;
}
@@ -556,56 +549,6 @@ static const struct rmi_transport_ops hid_rmi_ops = {
.reset = rmi_hid_reset,
};
-static void rmi_irq_teardown(void *data)
-{
- struct rmi_data *hdata = data;
- struct irq_domain *domain = hdata->domain;
-
- if (!domain)
- return;
-
- irq_dispose_mapping(irq_find_mapping(domain, 0));
-
- irq_domain_remove(domain);
- hdata->domain = NULL;
- hdata->rmi_irq = 0;
-}
-
-static int rmi_irq_map(struct irq_domain *h, unsigned int virq,
- irq_hw_number_t hw_irq_num)
-{
- irq_set_chip_and_handler(virq, &dummy_irq_chip, handle_simple_irq);
-
- return 0;
-}
-
-static const struct irq_domain_ops rmi_irq_ops = {
- .map = rmi_irq_map,
-};
-
-static int rmi_setup_irq_domain(struct hid_device *hdev)
-{
- struct rmi_data *hdata = hid_get_drvdata(hdev);
- int ret;
-
- hdata->domain = irq_domain_create_linear(hdev->dev.fwnode, 1,
- &rmi_irq_ops, hdata);
- if (!hdata->domain)
- return -ENOMEM;
-
- ret = devm_add_action_or_reset(&hdev->dev, &rmi_irq_teardown, hdata);
- if (ret)
- return ret;
-
- hdata->rmi_irq = irq_create_mapping(hdata->domain, 0);
- if (hdata->rmi_irq <= 0) {
- hid_err(hdev, "Can't allocate an IRQ\n");
- return hdata->rmi_irq < 0 ? hdata->rmi_irq : -ENXIO;
- }
-
- return 0;
-}
-
static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id)
{
struct rmi_data *data = NULL;
@@ -677,18 +620,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id)
mutex_init(&data->page_mutex);
- ret = rmi_setup_irq_domain(hdev);
- if (ret) {
- hid_err(hdev, "failed to allocate IRQ domain\n");
- return ret;
- }
-
if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS)
rmi_hid_pdata.f30_data.disable = true;
data->xport.dev = hdev->dev.parent;
data->xport.pdata = rmi_hid_pdata;
- data->xport.pdata.irq = data->rmi_irq;
data->xport.proto_name = "hid";
data->xport.ops = &hid_rmi_ops;
diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
index 4f2bb59..6d7da84 100644
--- a/drivers/input/rmi4/rmi_driver.c
+++ b/drivers/input/rmi4/rmi_driver.c
@@ -209,32 +209,46 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status,
attn_data.data = fifo_data;
kfifo_put(&drvdata->attn_fifo, attn_data);
+
+ schedule_work(&drvdata->attn_work);
}
EXPORT_SYMBOL_GPL(rmi_set_attn_data);
-static irqreturn_t rmi_irq_fn(int irq, void *dev_id)
+static void attn_callback(struct work_struct *work)
{
- struct rmi_device *rmi_dev = dev_id;
- struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
+ struct rmi_driver_data *drvdata = container_of(work,
+ struct rmi_driver_data,
+ attn_work);
struct rmi4_attn_data attn_data = {0};
int ret, count;
count = kfifo_get(&drvdata->attn_fifo, &attn_data);
- if (count) {
- *(drvdata->irq_status) = attn_data.irq_status;
- drvdata->attn_data = attn_data;
- }
+ if (!count)
+ return;
- ret = rmi_process_interrupt_requests(rmi_dev);
+ *(drvdata->irq_status) = attn_data.irq_status;
+ drvdata->attn_data = attn_data;
+
+ ret = rmi_process_interrupt_requests(drvdata->rmi_dev);
if (ret)
- rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev,
+ rmi_dbg(RMI_DEBUG_CORE, &drvdata->rmi_dev->dev,
"Failed to process interrupt request: %d\n", ret);
- if (count)
- kfree(attn_data.data);
+ kfree(attn_data.data);
if (!kfifo_is_empty(&drvdata->attn_fifo))
- return rmi_irq_fn(irq, dev_id);
+ schedule_work(&drvdata->attn_work);
+}
+
+static irqreturn_t rmi_irq_fn(int irq, void *dev_id)
+{
+ struct rmi_device *rmi_dev = dev_id;
+ int ret;
+
+ ret = rmi_process_interrupt_requests(rmi_dev);
+ if (ret)
+ rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev,
+ "Failed to process interrupt request: %d\n", ret);
return IRQ_HANDLED;
}
@@ -242,7 +256,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id)
static int rmi_irq_init(struct rmi_device *rmi_dev)
{
struct rmi_device_platform_data *pdata = rmi_get_platform_data(rmi_dev);
- struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
int irq_flags = irq_get_trigger_type(pdata->irq);
int ret;
@@ -260,8 +273,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev)
return ret;
}
- data->enabled = true;
-
return 0;
}
@@ -910,23 +921,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake)
if (data->enabled)
goto out;
- enable_irq(irq);
- data->enabled = true;
- if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) {
- retval = disable_irq_wake(irq);
- if (retval)
- dev_warn(&rmi_dev->dev,
- "Failed to disable irq for wake: %d\n",
- retval);
- }
+ if (irq) {
+ enable_irq(irq);
+ data->enabled = true;
+ if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) {
+ retval = disable_irq_wake(irq);
+ if (retval)
+ dev_warn(&rmi_dev->dev,
+ "Failed to disable irq for wake: %d\n",
+ retval);
+ }
- /*
- * Call rmi_process_interrupt_requests() after enabling irq,
- * otherwise we may lose interrupt on edge-triggered systems.
- */
- irq_flags = irq_get_trigger_type(pdata->irq);
- if (irq_flags & IRQ_TYPE_EDGE_BOTH)
- rmi_process_interrupt_requests(rmi_dev);
+ /*
+ * Call rmi_process_interrupt_requests() after enabling irq,
+ * otherwise we may lose interrupt on edge-triggered systems.
+ */
+ irq_flags = irq_get_trigger_type(pdata->irq);
+ if (irq_flags & IRQ_TYPE_EDGE_BOTH)
+ rmi_process_interrupt_requests(rmi_dev);
+ } else {
+ data->enabled = true;
+ }
out:
mutex_unlock(&data->enabled_mutex);
@@ -946,20 +961,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake)
goto out;
data->enabled = false;
- disable_irq(irq);
- if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) {
- retval = enable_irq_wake(irq);
- if (retval)
- dev_warn(&rmi_dev->dev,
- "Failed to enable irq for wake: %d\n",
- retval);
- }
-
- /* make sure the fifo is clean */
- while (!kfifo_is_empty(&data->attn_fifo)) {
- count = kfifo_get(&data->attn_fifo, &attn_data);
- if (count)
- kfree(attn_data.data);
+ if (irq) {
+ disable_irq(irq);
+ if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) {
+ retval = enable_irq_wake(irq);
+ if (retval)
+ dev_warn(&rmi_dev->dev,
+ "Failed to enable irq for wake: %d\n",
+ retval);
+ }
+ } else {
+ /* make sure the fifo is clean */
+ while (!kfifo_is_empty(&data->attn_fifo)) {
+ count = kfifo_get(&data->attn_fifo, &attn_data);
+ if (count)
+ kfree(attn_data.data);
+ }
}
out:
@@ -998,9 +1015,12 @@ EXPORT_SYMBOL_GPL(rmi_driver_resume);
static int rmi_driver_remove(struct device *dev)
{
struct rmi_device *rmi_dev = to_rmi_device(dev);
+ struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
rmi_disable_irq(rmi_dev, false);
+ cancel_work_sync(&data->attn_work);
+
rmi_f34_remove_sysfs(rmi_dev);
rmi_free_function_list(rmi_dev);
@@ -1230,9 +1250,15 @@ static int rmi_driver_probe(struct device *dev)
}
}
- retval = rmi_irq_init(rmi_dev);
- if (retval < 0)
- goto err_destroy_functions;
+ if (pdata->irq) {
+ retval = rmi_irq_init(rmi_dev);
+ if (retval < 0)
+ goto err_destroy_functions;
+ }
+
+ data->enabled = true;
+
+ INIT_WORK(&data->attn_work, attn_callback);
if (data->f01_container->dev.driver) {
/* Driver already bound, so enable ATTN now. */
diff --git a/include/linux/rmi.h b/include/linux/rmi.h
index 64125443..dc90178 100644
--- a/include/linux/rmi.h
+++ b/include/linux/rmi.h
@@ -364,6 +364,7 @@ struct rmi_driver_data {
struct rmi4_attn_data attn_data;
DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16);
+ struct work_struct attn_work;
};
int rmi_register_transport_device(struct rmi_transport_dev *xport);
--
2.9.4

View File

@ -2261,6 +2261,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
@ -5463,6 +5464,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SRAM=y
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2244,6 +2244,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
@ -5440,6 +5441,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SRAM=y
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2412,6 +2412,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
@ -5934,6 +5935,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SRAM=y
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2285,6 +2285,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
@ -5544,6 +5545,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SRAM=y
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2268,6 +2268,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
@ -5521,6 +5522,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SRAM=y
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2395,6 +2395,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
@ -5911,6 +5912,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SRAM=y
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2125,6 +2125,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
@ -5151,6 +5152,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2143,6 +2143,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
@ -5173,6 +5174,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2143,6 +2143,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
@ -5173,6 +5174,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2125,6 +2125,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
@ -5151,6 +5152,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2038,6 +2038,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SPARSEKMAP=m
@ -4960,6 +4961,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2020,6 +2020,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SPARSEKMAP=m
@ -4936,6 +4937,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -1983,6 +1983,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SPARSEKMAP=m
@ -4888,6 +4889,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -1965,6 +1965,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SPARSEKMAP=m
@ -4864,6 +4865,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -1982,6 +1982,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SPARSEKMAP=m
@ -4887,6 +4888,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -1964,6 +1964,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SPARSEKMAP=m
@ -4863,6 +4864,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -1935,6 +1935,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
# CONFIG_INPUT_POLLDEV is not set
CONFIG_INPUT_POWERMATE=m
# CONFIG_INPUT_PWM_BEEPER is not set
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
# CONFIG_INPUT_SPARSEKMAP is not set
@ -2625,7 +2626,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X_I2C is not set
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_BD9571MWV=m
# CONFIG_MFD_BD9571MWV is not set
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
@ -2665,7 +2666,7 @@ CONFIG_MFD_BD9571MWV=m
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
# CONFIG_MFD_RTSX_PCI is not set
CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_RTSX_USB is not set
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@ -2690,9 +2691,9 @@ CONFIG_MFD_SM501_GPIO=y
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS65912 is not set
# CONFIG_MFD_TPS65912_SPI is not set
CONFIG_MFD_TPS68470=y
# CONFIG_MFD_TPS68470 is not set
# CONFIG_MFD_TPS80031 is not set
CONFIG_MFD_VIPERBOARD=m
# CONFIG_MFD_VIPERBOARD is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_WL1273_CORE is not set
# CONFIG_MFD_WM831X_I2C is not set
@ -4784,6 +4785,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -1917,6 +1917,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
# CONFIG_INPUT_POLLDEV is not set
CONFIG_INPUT_POWERMATE=m
# CONFIG_INPUT_PWM_BEEPER is not set
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
# CONFIG_INPUT_SPARSEKMAP is not set
@ -2604,7 +2605,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X_I2C is not set
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_BD9571MWV=m
# CONFIG_MFD_BD9571MWV is not set
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
@ -2644,7 +2645,7 @@ CONFIG_MFD_BD9571MWV=m
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
# CONFIG_MFD_RTSX_PCI is not set
CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_RTSX_USB is not set
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@ -2669,9 +2670,9 @@ CONFIG_MFD_SM501_GPIO=y
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS65912 is not set
# CONFIG_MFD_TPS65912_SPI is not set
CONFIG_MFD_TPS68470=y
# CONFIG_MFD_TPS68470 is not set
# CONFIG_MFD_TPS80031 is not set
CONFIG_MFD_VIPERBOARD=m
# CONFIG_MFD_VIPERBOARD is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_WL1273_CORE is not set
# CONFIG_MFD_WM831X_I2C is not set
@ -4760,6 +4761,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2191,6 +2191,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
# CONFIG_INPUT_PWM_BEEPER is not set
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
@ -5225,6 +5226,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -2173,6 +2173,7 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
# CONFIG_INPUT_PWM_BEEPER is not set
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_RETU_PWRBUTTON=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
@ -5203,6 +5204,7 @@ CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SRAM is not set
# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set

View File

@ -67,9 +67,9 @@ Summary: The Linux kernel
# The next upstream release sublevel (base_sublevel+1)
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
# The rc snapshot level
%global rcrev 0
%global rcrev 1
# The git snapshot level
%define gitrev 6
%define gitrev 0
# Set rpm version accordingly
%define rpmversion 4.%{upstream_sublevel}.0
%endif
@ -322,7 +322,7 @@ Summary: The Linux kernel
%else
%define listnewconfig_fail 1
#FIXME
%define configmismatch_fail 0
%define configmismatch_fail 1
%endif
# To temporarily exclude an architecture from being built, add it to
@ -632,11 +632,14 @@ Patch502: CVE-2017-7477.patch
Patch601: 0001-Input-gpio_keys-Allow-suppression-of-input-events-fo.patch
Patch602: 0002-Input-soc_button_array-Suppress-power-button-presses.patch
Patch610: 0010-Input-silead-Add-support-for-capactive-home-button-f.patch
Patch611: 0011-Input-goodix-Add-support-for-capacitive-home-button.patch
# rhbz 1476467
Patch617: Fix-for-module-sig-verification.patch
# rhbz 1431375
Patch618: HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch
Patch619: input-rmi4-remove-the-need-for-artifical-IRQ.patch
# END OF PATCH DEFINITIONS
%endif
@ -2191,6 +2194,9 @@ fi
#
#
%changelog
* Mon Sep 18 2017 Justin M. Forbes <jforbes@fedoraproject.org> - 4.14.0-0.rc1.git0.1
- Linux v4.14-rc1
* Mon Sep 18 2017 Justin M. Forbes <jforbes@fedoraproject.org>
- Disable debugging options.

View File

@ -6,13 +6,13 @@ Subject: [PATCH] silence fbcon logo
Bugzilla: N/A
Upstream-status: Fedora mustard
---
drivers/video/console/fbcon.c | 26 +++++++++++++++++++-------
drivers/video/fbdev/core/fbcon.c | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index afd3301ac40c..2e08ba0ade3e 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -634,13 +634,15 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,
kfree(save);
}
@ -36,10 +36,11 @@ index afd3301ac40c..2e08ba0ade3e 100644
}
}
#endif /* MODULE */
@@ -3654,6 +3656,16 @@ static void __exit fb_console_exit(void)
module_exit(fb_console_exit);
@@ -3671,4 +3671,15 @@ void __exit fb_console_exit(void)
do_unregister_con_driver(&fb_con);
console_unlock();
}
+
+#else
+
+static int __init quiet_logo(char *str)
@ -51,8 +52,6 @@ index afd3301ac40c..2e08ba0ade3e 100644
+early_param("quiet", quiet_logo);
+
#endif
MODULE_LICENSE("GPL");
--
2.7.4

View File

@ -1,3 +1,3 @@
SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2
SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03
SHA512 (patch-4.13-git6.xz) = 58de784cb0c2d14acfd1f1711bb960cc0d1dd2607931bf7ed4561661f0f69e9fde29644a78944d215fc70a5c6471a56435f57c055d1f0686a992be18580cea59
SHA512 (patch-4.14-rc1.xz) = b74b27279197aa81bd5d906a7da83ecfecf23231b7889bd280b071920bb0094b4aef37ff86a9bbe47c13bd23ee80db81acfb2e49ce25d77b8b3ae3c8c203ae22