diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-08-01 16:12:06 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-08-01 16:12:06 -0400 |
commit | a23d387b767d5a363a8f7b0d86fcb4e2e76b1fa2 (patch) | |
tree | f7984c3d8bac4e28dec43817b038e8e4b7d42d4d | |
parent | 8b086ef99b99c7f000a2c277e3ac4a1b398d3303 (diff) | |
download | longterm-queue-4.12-a23d387b767d5a363a8f7b0d86fcb4e2e76b1fa2.tar.gz |
drop three patches n/a for 4.12.x
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/ASoC-codecs-msm8916-wcd-analog-fix-micbias-level.patch | 49 | ||||
-rw-r--r-- | queue/Bluetooth-hci_bcm-Fix-setting-of-irq-trigger-type.patch | 132 | ||||
-rw-r--r-- | queue/i40e-i40evf-spread-CPU-affinity-hints-across-online-.patch | 128 | ||||
-rw-r--r-- | queue/series | 3 |
4 files changed, 0 insertions, 312 deletions
diff --git a/queue/ASoC-codecs-msm8916-wcd-analog-fix-micbias-level.patch b/queue/ASoC-codecs-msm8916-wcd-analog-fix-micbias-level.patch deleted file mode 100644 index ff71974..0000000 --- a/queue/ASoC-codecs-msm8916-wcd-analog-fix-micbias-level.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 664611e7e02f76fbc5470ef545b2657ed25c292b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jean-Fran=C3=A7ois=20T=C3=AAtu?= - <jean-francois.tetu@savoirfairelinux.com> -Date: Fri, 29 Sep 2017 16:19:44 -0400 -Subject: [PATCH] ASoC: codecs: msm8916-wcd-analog: fix micbias level -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -commit 664611e7e02f76fbc5470ef545b2657ed25c292b upstream. - -The macro used to set the microphone bias level causes the -snd_soc_write() call to overwrite other fields in the CDC_A_MICB_1_VAL -register. The macro also does not return the proper level value -to use. This fixes this by preserving all bits from the register -that are not the level while setting the level. - -Signed-off-by: Jean-François TĂȘtu <jean-francois.tetu@savoirfairelinux.com> -Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> -Signed-off-by: Mark Brown <broonie@kernel.org> - -diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c -index 549c269acc7d..a42f8ebb9670 100644 ---- a/sound/soc/codecs/msm8916-wcd-analog.c -+++ b/sound/soc/codecs/msm8916-wcd-analog.c -@@ -104,7 +104,7 @@ - #define CDC_A_MICB_1_VAL (0xf141) - #define MICB_MIN_VAL 1600 - #define MICB_STEP_SIZE 50 --#define MICB_VOLTAGE_REGVAL(v) ((v - MICB_MIN_VAL)/MICB_STEP_SIZE) -+#define MICB_VOLTAGE_REGVAL(v) (((v - MICB_MIN_VAL)/MICB_STEP_SIZE) << 3) - #define MICB_1_VAL_MICB_OUT_VAL_MASK GENMASK(7, 3) - #define MICB_1_VAL_MICB_OUT_VAL_V2P70V ((0x16) << 3) - #define MICB_1_VAL_MICB_OUT_VAL_V1P80V ((0x4) << 3) -@@ -349,8 +349,9 @@ static void pm8916_wcd_analog_micbias_enable(struct snd_soc_codec *codec) - | MICB_1_CTL_EXT_PRECHARG_EN_ENABLE); - - if (wcd->micbias_mv) { -- snd_soc_write(codec, CDC_A_MICB_1_VAL, -- MICB_VOLTAGE_REGVAL(wcd->micbias_mv)); -+ snd_soc_update_bits(codec, CDC_A_MICB_1_VAL, -+ MICB_1_VAL_MICB_OUT_VAL_MASK, -+ MICB_VOLTAGE_REGVAL(wcd->micbias_mv)); - /* - * Special headset needs MICBIAS as 2.7V so wait for - * 50 msec for the MICBIAS to reach 2.7 volts. --- -2.15.0 - diff --git a/queue/Bluetooth-hci_bcm-Fix-setting-of-irq-trigger-type.patch b/queue/Bluetooth-hci_bcm-Fix-setting-of-irq-trigger-type.patch deleted file mode 100644 index f38832f..0000000 --- a/queue/Bluetooth-hci_bcm-Fix-setting-of-irq-trigger-type.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 227630cccdbb8f8a1b24ac26517b75079c9a69c9 Mon Sep 17 00:00:00 2001 -From: Hans de Goede <hdegoede@redhat.com> -Date: Wed, 4 Oct 2017 20:43:36 +0200 -Subject: [PATCH] Bluetooth: hci_bcm: Fix setting of irq trigger type - -commit 227630cccdbb8f8a1b24ac26517b75079c9a69c9 upstream. - -This commit fixes 2 issues with host-wake irq trigger type handling -in hci_bcm: - -1) bcm_setup_sleep sets sleep_params.host_wake_active based on -bcm_device.irq_polarity, but bcm_request_irq was always requesting -IRQF_TRIGGER_RISING as trigger type independent of irq_polarity. - -This was a problem when the irq is described as a GpioInt rather then -an Interrupt in the DSDT as for GpioInt-s the value passed to request_irq -is honored. This commit fixes this by requesting the correct trigger -type depending on bcm_device.irq_polarity. - -2) bcm_device.irq_polarity was used to directly store an ACPI polarity -value (ACPI_ACTIVE_*). This is undesirable because hci_bcm is also -used with device-tree and checking for something like ACPI_ACTIVE_LOW -in a non ACPI specific function like bcm_request_irq feels wrong. - -This commit fixes this by renaming irq_polarity to irq_active_low -and changing its type to a bool. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> -Signed-off-by: Marcel Holtmann <marcel@holtmann.org> - -diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index e2540113d0da..73d2d88ddc03 100644 ---- a/drivers/bluetooth/hci_bcm.c -+++ b/drivers/bluetooth/hci_bcm.c -@@ -68,7 +68,7 @@ struct bcm_device { - u32 init_speed; - u32 oper_speed; - int irq; -- u8 irq_polarity; -+ bool irq_active_low; - - #ifdef CONFIG_PM - struct hci_uart *hu; -@@ -213,7 +213,9 @@ static int bcm_request_irq(struct bcm_data *bcm) - } - - err = devm_request_irq(&bdev->pdev->dev, bdev->irq, bcm_host_wake, -- IRQF_TRIGGER_RISING, "host_wake", bdev); -+ bdev->irq_active_low ? IRQF_TRIGGER_FALLING : -+ IRQF_TRIGGER_RISING, -+ "host_wake", bdev); - if (err) - goto unlock; - -@@ -253,7 +255,7 @@ static int bcm_setup_sleep(struct hci_uart *hu) - struct sk_buff *skb; - struct bcm_set_sleep_mode sleep_params = default_sleep_params; - -- sleep_params.host_wake_active = !bcm->dev->irq_polarity; -+ sleep_params.host_wake_active = !bcm->dev->irq_active_low; - - skb = __hci_cmd_sync(hu->hdev, 0xfc27, sizeof(sleep_params), - &sleep_params, HCI_INIT_TIMEOUT); -@@ -690,10 +692,8 @@ static const struct acpi_gpio_mapping acpi_bcm_int_first_gpios[] = { - }; - - #ifdef CONFIG_ACPI --static u8 acpi_active_low = ACPI_ACTIVE_LOW; -- - /* IRQ polarity of some chipsets are not defined correctly in ACPI table. */ --static const struct dmi_system_id bcm_wrong_irq_dmi_table[] = { -+static const struct dmi_system_id bcm_active_low_irq_dmi_table[] = { - { - .ident = "Asus T100TA", - .matches = { -@@ -701,7 +701,6 @@ static const struct dmi_system_id bcm_wrong_irq_dmi_table[] = { - "ASUSTeK COMPUTER INC."), - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T100TA"), - }, -- .driver_data = &acpi_active_low, - }, - { - .ident = "Asus T100CHI", -@@ -710,7 +709,6 @@ static const struct dmi_system_id bcm_wrong_irq_dmi_table[] = { - "ASUSTeK COMPUTER INC."), - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T100CHI"), - }, -- .driver_data = &acpi_active_low, - }, - { /* Handle ThinkPad 8 tablets with BCM2E55 chipset ACPI ID */ - .ident = "Lenovo ThinkPad 8", -@@ -718,7 +716,6 @@ static const struct dmi_system_id bcm_wrong_irq_dmi_table[] = { - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), - DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "ThinkPad 8"), - }, -- .driver_data = &acpi_active_low, - }, - { } - }; -@@ -733,13 +730,13 @@ static int bcm_resource(struct acpi_resource *ares, void *data) - switch (ares->type) { - case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: - irq = &ares->data.extended_irq; -- dev->irq_polarity = irq->polarity; -+ dev->irq_active_low = irq->polarity == ACPI_ACTIVE_LOW; - break; - - case ACPI_RESOURCE_TYPE_GPIO: - gpio = &ares->data.gpio; - if (gpio->connection_type == ACPI_RESOURCE_GPIO_TYPE_INT) -- dev->irq_polarity = gpio->polarity; -+ dev->irq_active_low = gpio->polarity == ACPI_ACTIVE_LOW; - break; - - case ACPI_RESOURCE_TYPE_SERIAL_BUS: -@@ -834,11 +831,11 @@ static int bcm_acpi_probe(struct bcm_device *dev) - return ret; - acpi_dev_free_resource_list(&resources); - -- dmi_id = dmi_first_match(bcm_wrong_irq_dmi_table); -+ dmi_id = dmi_first_match(bcm_active_low_irq_dmi_table); - if (dmi_id) { - bt_dev_warn(dev, "%s: Overwriting IRQ polarity to active low", - dmi_id->ident); -- dev->irq_polarity = *(u8 *)dmi_id->driver_data; -+ dev->irq_active_low = true; - } - - return 0; --- -2.15.0 - diff --git a/queue/i40e-i40evf-spread-CPU-affinity-hints-across-online-.patch b/queue/i40e-i40evf-spread-CPU-affinity-hints-across-online-.patch deleted file mode 100644 index 0dcd14a..0000000 --- a/queue/i40e-i40evf-spread-CPU-affinity-hints-across-online-.patch +++ /dev/null @@ -1,128 +0,0 @@ -From be664cbefc50977aaefc868ba6a1109ec9b7449d Mon Sep 17 00:00:00 2001 -From: Jacob Keller <jacob.e.keller@intel.com> -Date: Tue, 29 Aug 2017 05:32:31 -0400 -Subject: [PATCH] i40e/i40evf: spread CPU affinity hints across online CPUs - only - -commit be664cbefc50977aaefc868ba6a1109ec9b7449d upstream. - -Currently, when setting up the IRQ for a q_vector, we set an affinity -hint based on the v_idx of that q_vector. Meaning a loop iterates on -v_idx, which is an incremental value, and the cpumask is created based -on this value. - -This is a problem in systems with multiple logical CPUs per core (like in -simultaneous multithreading (SMT) scenarios). If we disable some logical -CPUs, by turning SMT off for example, we will end up with a sparse -cpu_online_mask, i.e., only the first CPU in a core is online, and -incremental filling in q_vector cpumask might lead to multiple offline -CPUs being assigned to q_vectors. - -Example: if we have a system with 8 cores each one containing 8 logical -CPUs (SMT == 8 in this case), we have 64 CPUs in total. But if SMT is -disabled, only the 1st CPU in each core remains online, so the -cpu_online_mask in this case would have only 8 bits set, in a sparse way. - -In general case, when SMT is off the cpu_online_mask has only C bits set: -0, 1*N, 2*N, ..., C*(N-1) where -C == # of cores; -N == # of logical CPUs per core. -In our example, only bits 0, 8, 16, 24, 32, 40, 48, 56 would be set. - -Instead, we should only assign hints for CPUs which are online. Even -better, the kernel already provides a function, cpumask_local_spread() -which takes an index and returns a CPU, spreading the interrupts across -local NUMA nodes first, and then remote ones if necessary. - -Since we generally have a 1:1 mapping between vectors and CPUs, there -is no real advantage to spreading vectors to local CPUs first. In order -to avoid mismatch of the default XPS hints, we'll pass -1 so that it -spreads across all CPUs without regard to the node locality. - -Note that we don't need to change the q_vector->affinity_mask as this is -initialized to cpu_possible_mask, until an actual affinity is set and -then notified back to us. - -Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> -Tested-by: Andrew Bowers <andrewx.bowers@intel.com> -Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> - -diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c -index b539469f576f..d2bb4f17c89e 100644 ---- a/drivers/net/ethernet/intel/i40e/i40e_main.c -+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c -@@ -2885,14 +2885,15 @@ static void i40e_vsi_free_rx_resources(struct i40e_vsi *vsi) - static void i40e_config_xps_tx_ring(struct i40e_ring *ring) - { - struct i40e_vsi *vsi = ring->vsi; -+ int cpu; - - if (!ring->q_vector || !ring->netdev) - return; - - if ((vsi->tc_config.numtc <= 1) && - !test_and_set_bit(__I40E_TX_XPS_INIT_DONE, &ring->state)) { -- netif_set_xps_queue(ring->netdev, -- get_cpu_mask(ring->q_vector->v_idx), -+ cpu = cpumask_local_spread(ring->q_vector->v_idx, -1); -+ netif_set_xps_queue(ring->netdev, get_cpu_mask(cpu), - ring->queue_index); - } - -@@ -3482,6 +3483,7 @@ static int i40e_vsi_request_irq_msix(struct i40e_vsi *vsi, char *basename) - int tx_int_idx = 0; - int vector, err; - int irq_num; -+ int cpu; - - for (vector = 0; vector < q_vectors; vector++) { - struct i40e_q_vector *q_vector = vsi->q_vectors[vector]; -@@ -3517,10 +3519,14 @@ static int i40e_vsi_request_irq_msix(struct i40e_vsi *vsi, char *basename) - q_vector->affinity_notify.notify = i40e_irq_affinity_notify; - q_vector->affinity_notify.release = i40e_irq_affinity_release; - irq_set_affinity_notifier(irq_num, &q_vector->affinity_notify); -- /* get_cpu_mask returns a static constant mask with -- * a permanent lifetime so it's ok to use here. -+ /* Spread affinity hints out across online CPUs. -+ * -+ * get_cpu_mask returns a static constant mask with -+ * a permanent lifetime so it's ok to pass to -+ * irq_set_affinity_hint without making a copy. - */ -- irq_set_affinity_hint(irq_num, get_cpu_mask(q_vector->v_idx)); -+ cpu = cpumask_local_spread(q_vector->v_idx, -1); -+ irq_set_affinity_hint(irq_num, get_cpu_mask(cpu)); - } - - vsi->irqs_ready = true; -diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c -index f2f1e754c2ce..bc76378a71e2 100644 ---- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c -+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c -@@ -515,6 +515,7 @@ i40evf_request_traffic_irqs(struct i40evf_adapter *adapter, char *basename) - unsigned int vector, q_vectors; - unsigned int rx_int_idx = 0, tx_int_idx = 0; - int irq_num, err; -+ int cpu; - - i40evf_irq_disable(adapter); - /* Decrement for Other and TCP Timer vectors */ -@@ -553,10 +554,12 @@ i40evf_request_traffic_irqs(struct i40evf_adapter *adapter, char *basename) - q_vector->affinity_notify.release = - i40evf_irq_affinity_release; - irq_set_affinity_notifier(irq_num, &q_vector->affinity_notify); -- /* get_cpu_mask returns a static constant mask with -- * a permanent lifetime so it's ok to use here. -+ /* Spread the IRQ affinity hints across online CPUs. Note that -+ * get_cpu_mask returns a mask with a permanent lifetime so -+ * it's safe to use as a hint for irq_set_affinity_hint. - */ -- irq_set_affinity_hint(irq_num, get_cpu_mask(q_vector->v_idx)); -+ cpu = cpumask_local_spread(q_vector->v_idx, -1); -+ irq_set_affinity_hint(irq_num, get_cpu_mask(cpu)); - } - - return 0; --- -2.15.0 - diff --git a/queue/series b/queue/series index a6953a5..5617b08 100644 --- a/queue/series +++ b/queue/series @@ -21,11 +21,8 @@ IB-rxe-check-for-allocation-failure-on-elem.patch block-bfq-Disable-writeback-throttling.patch md-always-set-THREAD_WAKEUP-and-wake-up-wqueue-if-th.patch Bluetooth-hci_uart_set_flow_control-Fix-NULL-deref-w.patch -Bluetooth-hci_bcm-Fix-setting-of-irq-trigger-type.patch -i40e-i40evf-spread-CPU-affinity-hints-across-online-.patch PCI-AER-Report-non-fatal-errors-only-to-the-affected.patch tracing-Exclude-generic-fields-from-histograms.patch -ASoC-codecs-msm8916-wcd-analog-fix-micbias-level.patch ASoC-img-parallel-out-Add-pm_runtime_get-put-to-set_.patch powerpc-xmon-Avoid-tripping-SMP-hardlockup-watchdog.patch powerpc-watchdog-Do-not-trigger-SMP-crash-from-touch.patch |