Merge afe20da34b on remote branch

Change-Id: Ife33f711d7eecb0248f7c5aa435ce7460da6361e
This commit is contained in:
Linux Build Service Account 2023-07-30 23:19:26 -07:00
commit 070f83bd47
10 changed files with 46 additions and 6 deletions

View file

@ -364,6 +364,7 @@ CONFIG_AQFWD_IOSS=m
CONFIG_R8125=y
CONFIG_R8125_IOSS=m
CONFIG_R8168=y
CONFIG_R8168_IOSS=m
CONFIG_QCOM_SHOW_RESUME_IRQ=y
CONFIG_HARDENED_USERCOPY=y
# CONFIG_HARDENED_USERCOPY_FALLBACK is not set

View file

@ -190,6 +190,18 @@ config R8125_IOSS
To compile this driver as a module, choose M here. Module will be
called r8125_ioss. If unsure, say N.
config R8168_IOSS
tristate "Realtek R8168 IOSS glue driver"
depends on R8168
depends on IOSS
help
Enables IPA Ethernet Offload path on Realtek R8168 NIC. It is
designed to support generic HW processing of UL/DL IP packets for
various use cases to reduce the CPU load during E2E IP traffic.
To compile this driver as a module, choose M here. Module will be
called r8168_ioss. If unsure, say N.
config AQFWD_IOSS
tristate "AQC glue driver for IOSS v2"
depends on AQFWD

View file

@ -828,6 +828,9 @@ static void ep_pcie_core_init(struct ep_pcie_dev_t *dev, bool configured)
ep_pcie_write_mask(dev->dm_core + PCIE20_L1SUB_CAPABILITY, 0,
0x1f);
/* Set CLK_PM_EN which allows to configure the clock-power-man bit below for EP */
ep_pcie_write_mask(dev->elbi + PCIE20_ELBI_SYS_CTRL, 1, BIT(7));
/* Enable Clock Power Management */
ep_pcie_write_reg_field(dev->dm_core, PCIE20_LINK_CAPABILITIES,
PCIE20_MASK_CLOCK_POWER_MAN, 0x1);

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <linux/err.h>
@ -104,7 +104,7 @@ static int check_client(int client_id, int proc, int request)
int i = 0, rc;
int found = DHMS_MEM_CLIENT_INVALID;
for (i = 0; i < MAX_CLIENTS; i++) {
for (i = 0; i < num_clients; i++) {
if (memblock[i].client_id == client_id &&
memblock[i].peripheral == proc) {
found = i;
@ -484,7 +484,7 @@ static void handle_alloc_generic_req(struct qmi_handle *handle,
return;
}
for (i = 0; i < MAX_CLIENTS; i++) {
for (i = 0; i < num_clients; i++) {
if (memsh_child[i]->client_id == alloc_req->client_id) {
client_node = memsh_child[i];
dev_info(memsh_drv->dev,
@ -577,7 +577,7 @@ static void handle_free_generic_req(struct qmi_handle *handle,
flag = 1;
}
for (i = 0; i < MAX_CLIENTS; i++) {
for (i = 0; i < num_clients; i++) {
if (memsh_child[i]->client_id == free_req->client_id) {
client_node = memsh_child[i];
dev_info(memsh_drv->dev,

View file

@ -561,7 +561,7 @@ static int __init msm_minidump_init(void)
}
/*Check global minidump support initialization */
if (!md_global_toc->md_toc_init) {
if (size < sizeof(*md_global_toc) || !md_global_toc->md_toc_init) {
pr_err("System Minidump TOC not initialized\n");
return -ENODEV;
}

View file

@ -652,6 +652,11 @@ static int subsystem_shutdown(struct subsys_device *dev, void *data)
dev->crash_count++;
subsys_set_state(dev, SUBSYS_OFFLINE);
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(dev->desc->name, "modem"))
place_marker("M - Modem Stop");
#endif
return 0;
}

View file

@ -472,7 +472,10 @@ int pil_do_ramdump(struct pil_desc *desc,
if (ret)
pil_err(desc, "%s: Ramdump collection failed for subsys %s rc:%d\n",
__func__, desc->name, ret);
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(desc->name, "modem"))
place_marker("M - Modem Dump completed");
#endif
if (desc->subsys_vmid > 0)
ret = pil_assign_mem_to_subsys(desc, priv->region_start,
(priv->region_end - priv->region_start));

View file

@ -680,6 +680,8 @@ static const struct soc_id soc_id[] = {
{ 450, "SHIMA" },
{ 454, "HOLI" },
{ 507, "BLAIR" },
{ 565, "BLAIRP" },
{ 628, "BLAIRP-XR" },
{ 486, "MONACO" },
{ 458, "SDXLEMUR" },
{ 483, "SDXLEMUR-SD"},

View file

@ -871,6 +871,10 @@ static int subsys_ramdump(int enable, const struct subsys_desc *subsys)
if (!enable)
return 0;
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(subsys->name, "modem"))
place_marker("M - Modem Dump start");
#endif
return pil_do_ramdump(&d->desc, d->ramdump_dev, d->minidump_dev);
}
@ -915,6 +919,10 @@ static irqreturn_t subsys_err_fatal_intr_handler (int irq, void *drv_data)
d->subsys_desc.name);
return IRQ_HANDLED;
}
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
if (!strcmp(d->subsys_desc.name, "modem"))
place_marker("M - Modem crash");
#endif
subsys_set_crash_status(d->subsys, CRASH_STATUS_ERR_FATAL);
log_failure_reason(d);
subsystem_restart_dev(d->subsys);

View file

@ -1617,6 +1617,7 @@ static long f_cdev_ioctl(struct file *fp, unsigned int cmd,
int i = 0;
uint32_t val;
struct f_cdev *port;
unsigned long flags;
port = fp->private_data;
if (!port) {
@ -1638,11 +1639,13 @@ static long f_cdev_ioctl(struct file *fp, unsigned int cmd,
break;
case TIOCMGET:
pr_debug("TIOCMGET on port(%s)%pK\n", port->name, port);
spin_lock_irqsave(&port->port_lock, flags);
ret = f_cdev_tiocmget(port);
if (ret >= 0) {
ret = put_user(ret, (uint32_t *)arg);
port->cbits_updated = false;
}
spin_unlock_irqrestore(&port->port_lock, flags);
break;
default:
pr_err("Received cmd:%d not supported\n", cmd);
@ -1658,6 +1661,7 @@ static void usb_cser_notify_modem(void *fport, int ctrl_bits)
int temp;
struct f_cdev *port = fport;
struct cserial *cser;
unsigned long flags;
cser = &port->port_usb;
if (!port) {
@ -1672,8 +1676,10 @@ static void usb_cser_notify_modem(void *fport, int ctrl_bits)
if (temp == port->cbits_to_modem)
return;
spin_lock_irqsave(&port->port_lock, flags);
port->cbits_to_modem = temp;
port->cbits_updated = true;
spin_unlock_irqrestore(&port->port_lock, flags);
/* if DTR is high, update latest modem info to laptop */
if (port->cbits_to_modem & TIOCM_DTR) {