Skip to content
This repository has been archived by the owner on Apr 21, 2021. It is now read-only.

Commit

Permalink
Merge tag 'v5.10.8' into ASUS-N580GD
Browse files Browse the repository at this point in the history
This is the 5.10.8 stable release
  • Loading branch information
Javinator9889 committed Jan 21, 2021
2 parents 76dc799 + 7a1519a commit 2e7aed9
Show file tree
Hide file tree
Showing 103 changed files with 932 additions and 370 deletions.
2 changes: 1 addition & 1 deletion Makefile
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 10
SUBLEVEL = 7
SUBLEVEL = 8
EXTRAVERSION =
NAME = Kleptomaniac Octopus

Expand Down
6 changes: 6 additions & 0 deletions arch/Kconfig
Expand Up @@ -1037,6 +1037,12 @@ config ARCH_WANT_LD_ORPHAN_WARN
by the linker, since the locations of such sections can change between linker
versions.

config ARCH_SPLIT_ARG64
bool
help
If a 32-bit architecture requires 64-bit arguments to be split into
pairs of 32-bit arguments, select this option.

source "kernel/gcov/Kconfig"

source "scripts/gcc-plugins/Kconfig"
Expand Down
8 changes: 5 additions & 3 deletions arch/arm/mach-omap2/omap_device.c
Expand Up @@ -230,10 +230,12 @@ static int _omap_device_notifier_call(struct notifier_block *nb,
break;
case BUS_NOTIFY_BIND_DRIVER:
od = to_omap_device(pdev);
if (od && (od->_state == OMAP_DEVICE_STATE_ENABLED) &&
pm_runtime_status_suspended(dev)) {
if (od) {
od->_driver_status = BUS_NOTIFY_BIND_DRIVER;
pm_runtime_set_active(dev);
if (od->_state == OMAP_DEVICE_STATE_ENABLED &&
pm_runtime_status_suspended(dev)) {
pm_runtime_set_active(dev);
}
}
break;
case BUS_NOTIFY_ADD_DEVICE:
Expand Down
3 changes: 2 additions & 1 deletion arch/arm64/include/asm/processor.h
Expand Up @@ -96,7 +96,8 @@
#endif /* CONFIG_ARM64_FORCE_52BIT */

extern phys_addr_t arm64_dma_phys_limit;
#define ARCH_LOW_ADDRESS_LIMIT (arm64_dma_phys_limit - 1)
extern phys_addr_t arm64_dma32_phys_limit;
#define ARCH_LOW_ADDRESS_LIMIT ((arm64_dma_phys_limit ? : arm64_dma32_phys_limit) - 1)

struct debug_info {
#ifdef CONFIG_HAVE_HW_BREAKPOINT
Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/kernel/cpufeature.c
Expand Up @@ -2552,7 +2552,7 @@ static void verify_hyp_capabilities(void)
int parange, ipa_max;
unsigned int safe_vmid_bits, vmid_bits;

if (!IS_ENABLED(CONFIG_KVM) || !IS_ENABLED(CONFIG_KVM_ARM_HOST))
if (!IS_ENABLED(CONFIG_KVM))
return;

safe_mmfr1 = read_sanitised_ftr_reg(SYS_ID_AA64MMFR1_EL1);
Expand Down
4 changes: 4 additions & 0 deletions arch/arm64/kvm/sys_regs.c
Expand Up @@ -663,6 +663,10 @@ static void reset_pmcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r)
{
u64 pmcr, val;

/* No PMU available, PMCR_EL0 may UNDEF... */
if (!kvm_arm_support_pmu_v3())
return;

pmcr = read_sysreg(pmcr_el0);
/*
* Writable bits of PMCR_EL0 (ARMV8_PMU_PMCR_MASK) are reset to UNKNOWN
Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/mm/init.c
Expand Up @@ -60,7 +60,7 @@ EXPORT_SYMBOL(memstart_addr);
* bit addressable memory area.
*/
phys_addr_t arm64_dma_phys_limit __ro_after_init;
static phys_addr_t arm64_dma32_phys_limit __ro_after_init;
phys_addr_t arm64_dma32_phys_limit __ro_after_init;

#ifdef CONFIG_KEXEC_CORE
/*
Expand Down
9 changes: 9 additions & 0 deletions arch/powerpc/kernel/head_book3s_32.S
Expand Up @@ -262,10 +262,19 @@ __secondary_hold_acknowledge:
MachineCheck:
EXCEPTION_PROLOG_0
#ifdef CONFIG_PPC_CHRP
#ifdef CONFIG_VMAP_STACK
mr r11, r1
mfspr r1, SPRN_SPRG_THREAD
lwz r1, RTAS_SP(r1)
cmpwi cr1, r1, 0
bne cr1, 7f
mr r1, r11
#else
mfspr r11, SPRN_SPRG_THREAD
lwz r11, RTAS_SP(r11)
cmpwi cr1, r11, 0
bne cr1, 7f
#endif
#endif /* CONFIG_PPC_CHRP */
EXCEPTION_PROLOG_1 for_rtas=1
7: EXCEPTION_PROLOG_2
Expand Down
1 change: 1 addition & 0 deletions arch/x86/Kconfig
Expand Up @@ -18,6 +18,7 @@ config X86_32
select MODULES_USE_ELF_REL
select OLD_SIGACTION
select GENERIC_VDSO_32
select ARCH_SPLIT_ARG64

config X86_64
def_bool y
Expand Down
9 changes: 6 additions & 3 deletions block/genhd.c
Expand Up @@ -256,14 +256,17 @@ struct hd_struct *disk_part_iter_next(struct disk_part_iter *piter)
part = rcu_dereference(ptbl->part[piter->idx]);
if (!part)
continue;
get_device(part_to_dev(part));
piter->part = part;
if (!part_nr_sects_read(part) &&
!(piter->flags & DISK_PITER_INCL_EMPTY) &&
!(piter->flags & DISK_PITER_INCL_EMPTY_PART0 &&
piter->idx == 0))
piter->idx == 0)) {
put_device(part_to_dev(part));
piter->part = NULL;
continue;
}

get_device(part_to_dev(part));
piter->part = part;
piter->idx += inc;
break;
}
Expand Down
9 changes: 7 additions & 2 deletions drivers/base/regmap/regmap-debugfs.c
Expand Up @@ -582,18 +582,23 @@ void regmap_debugfs_init(struct regmap *map)
devname = dev_name(map->dev);

if (name) {
map->debugfs_name = kasprintf(GFP_KERNEL, "%s-%s",
if (!map->debugfs_name) {
map->debugfs_name = kasprintf(GFP_KERNEL, "%s-%s",
devname, name);
if (!map->debugfs_name)
return;
}
name = map->debugfs_name;
} else {
name = devname;
}

if (!strcmp(name, "dummy")) {
kfree(map->debugfs_name);

map->debugfs_name = kasprintf(GFP_KERNEL, "dummy%d",
dummy_index);
if (!map->debugfs_name)
return;
name = map->debugfs_name;
dummy_index++;
}
Expand Down
1 change: 1 addition & 0 deletions drivers/block/Kconfig
Expand Up @@ -451,6 +451,7 @@ config BLK_DEV_RBD
config BLK_DEV_RSXX
tristate "IBM Flash Adapter 900GB Full Height PCIe Device Driver"
depends on PCI
select CRC32
help
Device driver for IBM's high speed PCIe SSD
storage device: Flash Adapter 900GB Full Height.
Expand Down
3 changes: 2 additions & 1 deletion drivers/block/rnbd/rnbd-clt.c
Expand Up @@ -1664,7 +1664,8 @@ static void rnbd_destroy_sessions(void)
*/

list_for_each_entry_safe(sess, sn, &sess_list, list) {
WARN_ON(!rnbd_clt_get_sess(sess));
if (!rnbd_clt_get_sess(sess))
continue;
close_rtrs(sess);
list_for_each_entry_safe(dev, tn, &sess->devs_list, list) {
/*
Expand Down
9 changes: 3 additions & 6 deletions drivers/cpufreq/powernow-k8.c
Expand Up @@ -878,9 +878,9 @@ static int get_transition_latency(struct powernow_k8_data *data)

/* Take a frequency, and issue the fid/vid transition command */
static int transition_frequency_fidvid(struct powernow_k8_data *data,
unsigned int index)
unsigned int index,
struct cpufreq_policy *policy)
{
struct cpufreq_policy *policy;
u32 fid = 0;
u32 vid = 0;
int res;
Expand Down Expand Up @@ -912,9 +912,6 @@ static int transition_frequency_fidvid(struct powernow_k8_data *data,
freqs.old = find_khz_freq_from_fid(data->currfid);
freqs.new = find_khz_freq_from_fid(fid);

policy = cpufreq_cpu_get(smp_processor_id());
cpufreq_cpu_put(policy);

cpufreq_freq_transition_begin(policy, &freqs);
res = transition_fid_vid(data, fid, vid);
cpufreq_freq_transition_end(policy, &freqs, res);
Expand Down Expand Up @@ -969,7 +966,7 @@ static long powernowk8_target_fn(void *arg)

powernow_k8_acpi_pst_values(data, newstate);

ret = transition_frequency_fidvid(data, newstate);
ret = transition_frequency_fidvid(data, newstate, pol);

if (ret) {
pr_err("transition frequency failed\n");
Expand Down
4 changes: 2 additions & 2 deletions drivers/dma/dw-edma/dw-edma-core.c
Expand Up @@ -86,12 +86,12 @@ static struct dw_edma_chunk *dw_edma_alloc_chunk(struct dw_edma_desc *desc)

if (desc->chunk) {
/* Create and add new element into the linked list */
desc->chunks_alloc++;
list_add_tail(&chunk->list, &desc->chunk->list);
if (!dw_edma_alloc_burst(chunk)) {
kfree(chunk);
return NULL;
}
desc->chunks_alloc++;
list_add_tail(&chunk->list, &desc->chunk->list);
} else {
/* List head */
chunk->burst = NULL;
Expand Down
1 change: 1 addition & 0 deletions drivers/dma/mediatek/mtk-hsdma.c
Expand Up @@ -1007,6 +1007,7 @@ static int mtk_hsdma_probe(struct platform_device *pdev)
return 0;

err_free:
mtk_hsdma_hw_deinit(hsdma);
of_dma_controller_free(pdev->dev.of_node);
err_unregister:
dma_async_device_unregister(dd);
Expand Down
4 changes: 3 additions & 1 deletion drivers/dma/milbeaut-xdmac.c
Expand Up @@ -351,7 +351,7 @@ static int milbeaut_xdmac_probe(struct platform_device *pdev)

ret = dma_async_device_register(ddev);
if (ret)
return ret;
goto disable_xdmac;

ret = of_dma_controller_register(dev->of_node,
of_dma_simple_xlate, mdev);
Expand All @@ -364,6 +364,8 @@ static int milbeaut_xdmac_probe(struct platform_device *pdev)

unregister_dmac:
dma_async_device_unregister(ddev);
disable_xdmac:
disable_xdmac(mdev);
return ret;
}

Expand Down
11 changes: 8 additions & 3 deletions drivers/dma/xilinx/xilinx_dma.c
Expand Up @@ -2781,7 +2781,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
has_dre = false;

if (!has_dre)
xdev->common.copy_align = fls(width - 1);
xdev->common.copy_align = (enum dmaengine_alignment)fls(width - 1);

if (of_device_is_compatible(node, "xlnx,axi-vdma-mm2s-channel") ||
of_device_is_compatible(node, "xlnx,axi-dma-mm2s-channel") ||
Expand Down Expand Up @@ -2900,7 +2900,8 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
static int xilinx_dma_child_probe(struct xilinx_dma_device *xdev,
struct device_node *node)
{
int ret, i, nr_channels = 1;
int ret, i;
u32 nr_channels = 1;

ret = of_property_read_u32(node, "dma-channels", &nr_channels);
if (xdev->dma_config->dmatype == XDMA_TYPE_AXIMCDMA && ret < 0)
Expand Down Expand Up @@ -3112,7 +3113,11 @@ static int xilinx_dma_probe(struct platform_device *pdev)
}

/* Register the DMA engine with the core */
dma_async_device_register(&xdev->common);
err = dma_async_device_register(&xdev->common);
if (err) {
dev_err(xdev->dev, "failed to register the dma device\n");
goto error;
}

err = of_dma_controller_register(node, of_dma_xilinx_xlate,
xdev);
Expand Down
3 changes: 3 additions & 0 deletions drivers/gpu/drm/i915/display/intel_display_types.h
Expand Up @@ -1382,6 +1382,9 @@ struct intel_dp {
bool ycbcr_444_to_420;
} dfp;

/* To control wakeup latency, e.g. for irq-driven dp aux transfers. */
struct pm_qos_request pm_qos;

/* Display stream compression testing */
bool force_dsc_en;

Expand Down
8 changes: 6 additions & 2 deletions drivers/gpu/drm/i915/display/intel_dp.c
Expand Up @@ -1411,7 +1411,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
* lowest possible wakeup latency and so prevent the cpu from going into
* deep sleep states.
*/
cpu_latency_qos_update_request(&i915->pm_qos, 0);
cpu_latency_qos_update_request(&intel_dp->pm_qos, 0);

intel_dp_check_edp(intel_dp);

Expand Down Expand Up @@ -1544,7 +1544,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,

ret = recv_bytes;
out:
cpu_latency_qos_update_request(&i915->pm_qos, PM_QOS_DEFAULT_VALUE);
cpu_latency_qos_update_request(&intel_dp->pm_qos, PM_QOS_DEFAULT_VALUE);

if (vdd)
edp_panel_vdd_off(intel_dp, false);
Expand Down Expand Up @@ -1776,6 +1776,9 @@ static i915_reg_t skl_aux_data_reg(struct intel_dp *intel_dp, int index)
static void
intel_dp_aux_fini(struct intel_dp *intel_dp)
{
if (cpu_latency_qos_request_active(&intel_dp->pm_qos))
cpu_latency_qos_remove_request(&intel_dp->pm_qos);

kfree(intel_dp->aux.name);
}

Expand Down Expand Up @@ -1818,6 +1821,7 @@ intel_dp_aux_init(struct intel_dp *intel_dp)
aux_ch_name(dig_port->aux_ch),
port_name(encoder->port));
intel_dp->aux.transfer = intel_dp_aux_transfer;
cpu_latency_qos_add_request(&intel_dp->pm_qos, PM_QOS_DEFAULT_VALUE);
}

bool intel_dp_source_supports_hbr2(struct intel_dp *intel_dp)
Expand Down
5 changes: 0 additions & 5 deletions drivers/gpu/drm/i915/i915_drv.c
Expand Up @@ -577,8 +577,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)

pci_set_master(pdev);

cpu_latency_qos_add_request(&dev_priv->pm_qos, PM_QOS_DEFAULT_VALUE);

intel_gt_init_workarounds(dev_priv);

/* On the 945G/GM, the chipset reports the MSI capability on the
Expand Down Expand Up @@ -623,7 +621,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
err_msi:
if (pdev->msi_enabled)
pci_disable_msi(pdev);
cpu_latency_qos_remove_request(&dev_priv->pm_qos);
err_mem_regions:
intel_memory_regions_driver_release(dev_priv);
err_ggtt:
Expand All @@ -645,8 +642,6 @@ static void i915_driver_hw_remove(struct drm_i915_private *dev_priv)

if (pdev->msi_enabled)
pci_disable_msi(pdev);

cpu_latency_qos_remove_request(&dev_priv->pm_qos);
}

/**
Expand Down
3 changes: 0 additions & 3 deletions drivers/gpu/drm/i915/i915_drv.h
Expand Up @@ -892,9 +892,6 @@ struct drm_i915_private {

bool display_irqs_enabled;

/* To control wakeup latency, e.g. for irq-driven dp aux transfers. */
struct pm_qos_request pm_qos;

/* Sideband mailbox protection */
struct mutex sb_lock;
struct pm_qos_request sb_qos;
Expand Down
6 changes: 5 additions & 1 deletion drivers/gpu/drm/panfrost/panfrost_job.c
Expand Up @@ -515,6 +515,8 @@ int panfrost_job_init(struct panfrost_device *pfdev)
}

for (j = 0; j < NUM_JOB_SLOTS; j++) {
mutex_init(&js->queue[j].lock);

js->queue[j].fence_context = dma_fence_context_alloc(1);

ret = drm_sched_init(&js->queue[j].sched,
Expand Down Expand Up @@ -545,8 +547,10 @@ void panfrost_job_fini(struct panfrost_device *pfdev)

job_write(pfdev, JOB_INT_MASK, 0);

for (j = 0; j < NUM_JOB_SLOTS; j++)
for (j = 0; j < NUM_JOB_SLOTS; j++) {
drm_sched_fini(&js->queue[j].sched);
mutex_destroy(&js->queue[j].lock);
}

}

Expand Down

0 comments on commit 2e7aed9

Please sign in to comment.