Loading drivers/platform/msm/Kconfig +12 −0 Original line number Diff line number Diff line Loading @@ -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 Loading drivers/platform/msm/ep_pcie/ep_pcie_core.c +3 −0 Original line number Diff line number Diff line Loading @@ -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); Loading drivers/usb/gadget/function/f_cdev.c +6 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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); Loading @@ -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) { Loading @@ -1672,6 +1676,7 @@ 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; Loading @@ -1686,6 +1691,7 @@ static void usb_cser_notify_modem(void *fport, int ctrl_bits) cser->send_modem_ctrl_bits(cser, cbits_to_laptop); } spin_unlock_irqrestore(&port->port_lock, flags); wake_up(&port->read_wq); } Loading include/linux/ipa_eth.h +3 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ /* * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. * * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. */ #ifndef _IPA_ETH_H_ Loading Loading @@ -109,12 +109,14 @@ struct ipa_eth_aqc_setup_info { * @bar_size: bar region size * @queue_number: Which RTK queue to check the status on * @dest_tail_ptr_offs: tail ptr offset * @num_queues_enabled: Total queues to be enable */ struct ipa_eth_realtek_setup_info { phys_addr_t bar_addr; u32 bar_size; u8 queue_number; phys_addr_t dest_tail_ptr_offs; u8 num_queues_enabled; }; Loading Loading
drivers/platform/msm/Kconfig +12 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
drivers/platform/msm/ep_pcie/ep_pcie_core.c +3 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
drivers/usb/gadget/function/f_cdev.c +6 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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); Loading @@ -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) { Loading @@ -1672,6 +1676,7 @@ 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; Loading @@ -1686,6 +1691,7 @@ static void usb_cser_notify_modem(void *fport, int ctrl_bits) cser->send_modem_ctrl_bits(cser, cbits_to_laptop); } spin_unlock_irqrestore(&port->port_lock, flags); wake_up(&port->read_wq); } Loading
include/linux/ipa_eth.h +3 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ /* * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. * * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. */ #ifndef _IPA_ETH_H_ Loading Loading @@ -109,12 +109,14 @@ struct ipa_eth_aqc_setup_info { * @bar_size: bar region size * @queue_number: Which RTK queue to check the status on * @dest_tail_ptr_offs: tail ptr offset * @num_queues_enabled: Total queues to be enable */ struct ipa_eth_realtek_setup_info { phys_addr_t bar_addr; u32 bar_size; u8 queue_number; phys_addr_t dest_tail_ptr_offs; u8 num_queues_enabled; }; Loading