Merge 576fedf87b ("Merge branch 'net-ipa-header-hygiene'") into android-mainline
Steps on the way to 6.10-rc1 Change-Id: I9120560dd991bdbb07de7b8b5782af35f26bbb19 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
@@ -640,6 +640,7 @@ config NETDEVSIM
|
||||
depends on PSAMPLE || PSAMPLE=n
|
||||
depends on PTP_1588_CLOCK_MOCK || PTP_1588_CLOCK_MOCK=n
|
||||
select NET_DEVLINK
|
||||
select PAGE_POOL
|
||||
help
|
||||
This driver is a developer testing tool and software model that can
|
||||
be used to test various control path networking APIs, especially
|
||||
|
||||
+32
-17
@@ -740,16 +740,19 @@ static void bcm_sf2_sw_get_caps(struct dsa_switch *ds, int port,
|
||||
MAC_10 | MAC_100 | MAC_1000;
|
||||
}
|
||||
|
||||
static void bcm_sf2_sw_mac_config(struct dsa_switch *ds, int port,
|
||||
static void bcm_sf2_sw_mac_config(struct phylink_config *config,
|
||||
unsigned int mode,
|
||||
const struct phylink_link_state *state)
|
||||
{
|
||||
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
|
||||
struct dsa_port *dp = dsa_phylink_to_port(config);
|
||||
u32 id_mode_dis = 0, port_mode;
|
||||
struct bcm_sf2_priv *priv;
|
||||
u32 reg_rgmii_ctrl;
|
||||
u32 reg;
|
||||
|
||||
if (port == core_readl(priv, CORE_IMP0_PRT_ID))
|
||||
priv = bcm_sf2_to_priv(dp->ds);
|
||||
|
||||
if (dp->index == core_readl(priv, CORE_IMP0_PRT_ID))
|
||||
return;
|
||||
|
||||
switch (state->interface) {
|
||||
@@ -770,7 +773,7 @@ static void bcm_sf2_sw_mac_config(struct dsa_switch *ds, int port,
|
||||
return;
|
||||
}
|
||||
|
||||
reg_rgmii_ctrl = bcm_sf2_reg_rgmii_cntrl(priv, port);
|
||||
reg_rgmii_ctrl = bcm_sf2_reg_rgmii_cntrl(priv, dp->index);
|
||||
|
||||
/* Clear id_mode_dis bit, and the existing port mode, let
|
||||
* RGMII_MODE_EN bet set by mac_link_{up,down}
|
||||
@@ -809,13 +812,16 @@ static void bcm_sf2_sw_mac_link_set(struct dsa_switch *ds, int port,
|
||||
reg_writel(priv, reg, reg_rgmii_ctrl);
|
||||
}
|
||||
|
||||
static void bcm_sf2_sw_mac_link_down(struct dsa_switch *ds, int port,
|
||||
static void bcm_sf2_sw_mac_link_down(struct phylink_config *config,
|
||||
unsigned int mode,
|
||||
phy_interface_t interface)
|
||||
{
|
||||
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
|
||||
struct dsa_port *dp = dsa_phylink_to_port(config);
|
||||
struct bcm_sf2_priv *priv;
|
||||
int port = dp->index;
|
||||
u32 reg, offset;
|
||||
|
||||
priv = bcm_sf2_to_priv(dp->ds);
|
||||
if (priv->wol_ports_mask & BIT(port))
|
||||
return;
|
||||
|
||||
@@ -824,23 +830,26 @@ static void bcm_sf2_sw_mac_link_down(struct dsa_switch *ds, int port,
|
||||
reg &= ~LINK_STS;
|
||||
core_writel(priv, reg, offset);
|
||||
|
||||
bcm_sf2_sw_mac_link_set(ds, port, interface, false);
|
||||
bcm_sf2_sw_mac_link_set(dp->ds, port, interface, false);
|
||||
}
|
||||
|
||||
static void bcm_sf2_sw_mac_link_up(struct dsa_switch *ds, int port,
|
||||
static void bcm_sf2_sw_mac_link_up(struct phylink_config *config,
|
||||
struct phy_device *phydev,
|
||||
unsigned int mode,
|
||||
phy_interface_t interface,
|
||||
struct phy_device *phydev,
|
||||
int speed, int duplex,
|
||||
bool tx_pause, bool rx_pause)
|
||||
{
|
||||
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
|
||||
struct ethtool_keee *p = &priv->dev->ports[port].eee;
|
||||
struct dsa_port *dp = dsa_phylink_to_port(config);
|
||||
struct bcm_sf2_priv *priv;
|
||||
u32 reg_rgmii_ctrl = 0;
|
||||
struct ethtool_keee *p;
|
||||
int port = dp->index;
|
||||
u32 reg, offset;
|
||||
|
||||
bcm_sf2_sw_mac_link_set(ds, port, interface, true);
|
||||
bcm_sf2_sw_mac_link_set(dp->ds, port, interface, true);
|
||||
|
||||
priv = bcm_sf2_to_priv(dp->ds);
|
||||
offset = bcm_sf2_port_override_offset(priv, port);
|
||||
|
||||
if (phy_interface_mode_is_rgmii(interface) ||
|
||||
@@ -886,8 +895,10 @@ static void bcm_sf2_sw_mac_link_up(struct dsa_switch *ds, int port,
|
||||
|
||||
core_writel(priv, reg, offset);
|
||||
|
||||
if (mode == MLO_AN_PHY && phydev)
|
||||
p->eee_enabled = b53_eee_init(ds, port, phydev);
|
||||
if (mode == MLO_AN_PHY && phydev) {
|
||||
p = &priv->dev->ports[port].eee;
|
||||
p->eee_enabled = b53_eee_init(dp->ds, port, phydev);
|
||||
}
|
||||
}
|
||||
|
||||
static void bcm_sf2_sw_fixed_state(struct dsa_switch *ds, int port,
|
||||
@@ -1196,6 +1207,12 @@ static int bcm_sf2_sw_get_sset_count(struct dsa_switch *ds, int port,
|
||||
return cnt;
|
||||
}
|
||||
|
||||
static const struct phylink_mac_ops bcm_sf2_phylink_mac_ops = {
|
||||
.mac_config = bcm_sf2_sw_mac_config,
|
||||
.mac_link_down = bcm_sf2_sw_mac_link_down,
|
||||
.mac_link_up = bcm_sf2_sw_mac_link_up,
|
||||
};
|
||||
|
||||
static const struct dsa_switch_ops bcm_sf2_ops = {
|
||||
.get_tag_protocol = b53_get_tag_protocol,
|
||||
.setup = bcm_sf2_sw_setup,
|
||||
@@ -1206,9 +1223,6 @@ static const struct dsa_switch_ops bcm_sf2_ops = {
|
||||
.get_ethtool_phy_stats = b53_get_ethtool_phy_stats,
|
||||
.get_phy_flags = bcm_sf2_sw_get_phy_flags,
|
||||
.phylink_get_caps = bcm_sf2_sw_get_caps,
|
||||
.phylink_mac_config = bcm_sf2_sw_mac_config,
|
||||
.phylink_mac_link_down = bcm_sf2_sw_mac_link_down,
|
||||
.phylink_mac_link_up = bcm_sf2_sw_mac_link_up,
|
||||
.phylink_fixed_state = bcm_sf2_sw_fixed_state,
|
||||
.suspend = bcm_sf2_sw_suspend,
|
||||
.resume = bcm_sf2_sw_resume,
|
||||
@@ -1399,6 +1413,7 @@ static int bcm_sf2_sw_probe(struct platform_device *pdev)
|
||||
priv->dev = dev;
|
||||
ds = dev->ds;
|
||||
ds->ops = &bcm_sf2_ops;
|
||||
ds->phylink_mac_ops = &bcm_sf2_phylink_mac_ops;
|
||||
|
||||
/* Advertise the 8 egress queues */
|
||||
ds->num_tx_queues = SF2_NUM_EGRESS_QUEUES;
|
||||
|
||||
@@ -1293,14 +1293,29 @@ static void lan9303_phylink_get_caps(struct dsa_switch *ds, int port,
|
||||
}
|
||||
}
|
||||
|
||||
static void lan9303_phylink_mac_link_up(struct dsa_switch *ds, int port,
|
||||
static void lan9303_phylink_mac_config(struct phylink_config *config,
|
||||
unsigned int mode,
|
||||
const struct phylink_link_state *state)
|
||||
{
|
||||
}
|
||||
|
||||
static void lan9303_phylink_mac_link_down(struct phylink_config *config,
|
||||
unsigned int mode,
|
||||
phy_interface_t interface)
|
||||
{
|
||||
}
|
||||
|
||||
static void lan9303_phylink_mac_link_up(struct phylink_config *config,
|
||||
struct phy_device *phydev,
|
||||
unsigned int mode,
|
||||
phy_interface_t interface,
|
||||
struct phy_device *phydev, int speed,
|
||||
int duplex, bool tx_pause,
|
||||
int speed, int duplex, bool tx_pause,
|
||||
bool rx_pause)
|
||||
{
|
||||
struct lan9303 *chip = ds->priv;
|
||||
struct dsa_port *dp = dsa_phylink_to_port(config);
|
||||
struct lan9303 *chip = dp->ds->priv;
|
||||
struct dsa_switch *ds = dp->ds;
|
||||
int port = dp->index;
|
||||
u32 ctl;
|
||||
u32 reg;
|
||||
|
||||
@@ -1330,6 +1345,12 @@ static void lan9303_phylink_mac_link_up(struct dsa_switch *ds, int port,
|
||||
regmap_write(chip->regmap, flow_ctl_reg[port], reg);
|
||||
}
|
||||
|
||||
static const struct phylink_mac_ops lan9303_phylink_mac_ops = {
|
||||
.mac_config = lan9303_phylink_mac_config,
|
||||
.mac_link_down = lan9303_phylink_mac_link_down,
|
||||
.mac_link_up = lan9303_phylink_mac_link_up,
|
||||
};
|
||||
|
||||
static const struct dsa_switch_ops lan9303_switch_ops = {
|
||||
.get_tag_protocol = lan9303_get_tag_protocol,
|
||||
.setup = lan9303_setup,
|
||||
@@ -1337,7 +1358,6 @@ static const struct dsa_switch_ops lan9303_switch_ops = {
|
||||
.phy_read = lan9303_phy_read,
|
||||
.phy_write = lan9303_phy_write,
|
||||
.phylink_get_caps = lan9303_phylink_get_caps,
|
||||
.phylink_mac_link_up = lan9303_phylink_mac_link_up,
|
||||
.get_ethtool_stats = lan9303_get_ethtool_stats,
|
||||
.get_sset_count = lan9303_get_sset_count,
|
||||
.port_enable = lan9303_port_enable,
|
||||
@@ -1365,6 +1385,7 @@ static int lan9303_register_switch(struct lan9303 *chip)
|
||||
chip->ds->num_ports = LAN9303_NUM_PORTS;
|
||||
chip->ds->priv = chip;
|
||||
chip->ds->ops = &lan9303_switch_ops;
|
||||
chip->ds->phylink_mac_ops = &lan9303_phylink_mac_ops;
|
||||
base = chip->phy_addr_base;
|
||||
chip->ds->phys_mii_mask = GENMASK(LAN9303_NUM_PORTS - 1 + base, base);
|
||||
|
||||
|
||||
@@ -239,23 +239,31 @@ static void a5psw_phylink_get_caps(struct dsa_switch *ds, int port,
|
||||
}
|
||||
|
||||
static struct phylink_pcs *
|
||||
a5psw_phylink_mac_select_pcs(struct dsa_switch *ds, int port,
|
||||
a5psw_phylink_mac_select_pcs(struct phylink_config *config,
|
||||
phy_interface_t interface)
|
||||
{
|
||||
struct dsa_port *dp = dsa_to_port(ds, port);
|
||||
struct a5psw *a5psw = ds->priv;
|
||||
struct dsa_port *dp = dsa_phylink_to_port(config);
|
||||
struct a5psw *a5psw = dp->ds->priv;
|
||||
|
||||
if (!dsa_port_is_cpu(dp) && a5psw->pcs[port])
|
||||
return a5psw->pcs[port];
|
||||
if (dsa_port_is_cpu(dp))
|
||||
return NULL;
|
||||
|
||||
return NULL;
|
||||
return a5psw->pcs[dp->index];
|
||||
}
|
||||
|
||||
static void a5psw_phylink_mac_link_down(struct dsa_switch *ds, int port,
|
||||
static void a5psw_phylink_mac_config(struct phylink_config *config,
|
||||
unsigned int mode,
|
||||
const struct phylink_link_state *state)
|
||||
{
|
||||
}
|
||||
|
||||
static void a5psw_phylink_mac_link_down(struct phylink_config *config,
|
||||
unsigned int mode,
|
||||
phy_interface_t interface)
|
||||
{
|
||||
struct a5psw *a5psw = ds->priv;
|
||||
struct dsa_port *dp = dsa_phylink_to_port(config);
|
||||
struct a5psw *a5psw = dp->ds->priv;
|
||||
int port = dp->index;
|
||||
u32 cmd_cfg;
|
||||
|
||||
cmd_cfg = a5psw_reg_readl(a5psw, A5PSW_CMD_CFG(port));
|
||||
@@ -263,15 +271,17 @@ static void a5psw_phylink_mac_link_down(struct dsa_switch *ds, int port,
|
||||
a5psw_reg_writel(a5psw, A5PSW_CMD_CFG(port), cmd_cfg);
|
||||
}
|
||||
|
||||
static void a5psw_phylink_mac_link_up(struct dsa_switch *ds, int port,
|
||||
static void a5psw_phylink_mac_link_up(struct phylink_config *config,
|
||||
struct phy_device *phydev,
|
||||
unsigned int mode,
|
||||
phy_interface_t interface,
|
||||
struct phy_device *phydev, int speed,
|
||||
int duplex, bool tx_pause, bool rx_pause)
|
||||
int speed, int duplex, bool tx_pause,
|
||||
bool rx_pause)
|
||||
{
|
||||
u32 cmd_cfg = A5PSW_CMD_CFG_RX_ENA | A5PSW_CMD_CFG_TX_ENA |
|
||||
A5PSW_CMD_CFG_TX_CRC_APPEND;
|
||||
struct a5psw *a5psw = ds->priv;
|
||||
struct dsa_port *dp = dsa_phylink_to_port(config);
|
||||
struct a5psw *a5psw = dp->ds->priv;
|
||||
|
||||
if (speed == SPEED_1000)
|
||||
cmd_cfg |= A5PSW_CMD_CFG_ETH_SPEED;
|
||||
@@ -284,7 +294,7 @@ static void a5psw_phylink_mac_link_up(struct dsa_switch *ds, int port,
|
||||
if (!rx_pause)
|
||||
cmd_cfg &= ~A5PSW_CMD_CFG_PAUSE_IGNORE;
|
||||
|
||||
a5psw_reg_writel(a5psw, A5PSW_CMD_CFG(port), cmd_cfg);
|
||||
a5psw_reg_writel(a5psw, A5PSW_CMD_CFG(dp->index), cmd_cfg);
|
||||
}
|
||||
|
||||
static int a5psw_set_ageing_time(struct dsa_switch *ds, unsigned int msecs)
|
||||
@@ -992,15 +1002,19 @@ static int a5psw_setup(struct dsa_switch *ds)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct phylink_mac_ops a5psw_phylink_mac_ops = {
|
||||
.mac_select_pcs = a5psw_phylink_mac_select_pcs,
|
||||
.mac_config = a5psw_phylink_mac_config,
|
||||
.mac_link_down = a5psw_phylink_mac_link_down,
|
||||
.mac_link_up = a5psw_phylink_mac_link_up,
|
||||
};
|
||||
|
||||
static const struct dsa_switch_ops a5psw_switch_ops = {
|
||||
.get_tag_protocol = a5psw_get_tag_protocol,
|
||||
.setup = a5psw_setup,
|
||||
.port_disable = a5psw_port_disable,
|
||||
.port_enable = a5psw_port_enable,
|
||||
.phylink_get_caps = a5psw_phylink_get_caps,
|
||||
.phylink_mac_select_pcs = a5psw_phylink_mac_select_pcs,
|
||||
.phylink_mac_link_down = a5psw_phylink_mac_link_down,
|
||||
.phylink_mac_link_up = a5psw_phylink_mac_link_up,
|
||||
.port_change_mtu = a5psw_port_change_mtu,
|
||||
.port_max_mtu = a5psw_port_max_mtu,
|
||||
.get_sset_count = a5psw_get_sset_count,
|
||||
@@ -1252,6 +1266,7 @@ static int a5psw_probe(struct platform_device *pdev)
|
||||
ds->dev = dev;
|
||||
ds->num_ports = A5PSW_PORTS_NUM;
|
||||
ds->ops = &a5psw_switch_ops;
|
||||
ds->phylink_mac_ops = &a5psw_phylink_mac_ops;
|
||||
ds->priv = a5psw;
|
||||
|
||||
ret = dsa_register_switch(ds);
|
||||
|
||||
@@ -466,13 +466,25 @@ static void xrs700x_phylink_get_caps(struct dsa_switch *ds, int port,
|
||||
}
|
||||
}
|
||||
|
||||
static void xrs700x_mac_link_up(struct dsa_switch *ds, int port,
|
||||
unsigned int mode, phy_interface_t interface,
|
||||
static void xrs700x_mac_config(struct phylink_config *config, unsigned int mode,
|
||||
const struct phylink_link_state *state)
|
||||
{
|
||||
}
|
||||
|
||||
static void xrs700x_mac_link_down(struct phylink_config *config,
|
||||
unsigned int mode, phy_interface_t interface)
|
||||
{
|
||||
}
|
||||
|
||||
static void xrs700x_mac_link_up(struct phylink_config *config,
|
||||
struct phy_device *phydev,
|
||||
unsigned int mode, phy_interface_t interface,
|
||||
int speed, int duplex,
|
||||
bool tx_pause, bool rx_pause)
|
||||
{
|
||||
struct xrs700x *priv = ds->priv;
|
||||
struct dsa_port *dp = dsa_phylink_to_port(config);
|
||||
struct xrs700x *priv = dp->ds->priv;
|
||||
int port = dp->index;
|
||||
unsigned int val;
|
||||
|
||||
switch (speed) {
|
||||
@@ -699,13 +711,18 @@ static int xrs700x_hsr_leave(struct dsa_switch *ds, int port,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct phylink_mac_ops xrs700x_phylink_mac_ops = {
|
||||
.mac_config = xrs700x_mac_config,
|
||||
.mac_link_down = xrs700x_mac_link_down,
|
||||
.mac_link_up = xrs700x_mac_link_up,
|
||||
};
|
||||
|
||||
static const struct dsa_switch_ops xrs700x_ops = {
|
||||
.get_tag_protocol = xrs700x_get_tag_protocol,
|
||||
.setup = xrs700x_setup,
|
||||
.teardown = xrs700x_teardown,
|
||||
.port_stp_state_set = xrs700x_port_stp_state_set,
|
||||
.phylink_get_caps = xrs700x_phylink_get_caps,
|
||||
.phylink_mac_link_up = xrs700x_mac_link_up,
|
||||
.get_strings = xrs700x_get_strings,
|
||||
.get_sset_count = xrs700x_get_sset_count,
|
||||
.get_ethtool_stats = xrs700x_get_ethtool_stats,
|
||||
|
||||
@@ -2371,7 +2371,7 @@ static int ibmvnic_tx_scrq_flush(struct ibmvnic_adapter *adapter,
|
||||
ibmvnic_tx_scrq_clean_buffer(adapter, tx_scrq);
|
||||
else
|
||||
ind_bufp->index = 0;
|
||||
return 0;
|
||||
return rc;
|
||||
}
|
||||
|
||||
static netdev_tx_t ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev)
|
||||
@@ -2424,7 +2424,9 @@ static netdev_tx_t ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev)
|
||||
tx_dropped++;
|
||||
tx_send_failed++;
|
||||
ret = NETDEV_TX_OK;
|
||||
ibmvnic_tx_scrq_flush(adapter, tx_scrq);
|
||||
lpar_rc = ibmvnic_tx_scrq_flush(adapter, tx_scrq);
|
||||
if (lpar_rc != H_SUCCESS)
|
||||
goto tx_err;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -2439,8 +2441,10 @@ static netdev_tx_t ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev)
|
||||
dev_kfree_skb_any(skb);
|
||||
tx_send_failed++;
|
||||
tx_dropped++;
|
||||
ibmvnic_tx_scrq_flush(adapter, tx_scrq);
|
||||
ret = NETDEV_TX_OK;
|
||||
lpar_rc = ibmvnic_tx_scrq_flush(adapter, tx_scrq);
|
||||
if (lpar_rc != H_SUCCESS)
|
||||
goto tx_err;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2021 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../ipa_data.h"
|
||||
#include "../ipa_endpoint.h"
|
||||
#include "../ipa_mem.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
/** enum ipa_resource_type - IPA resource types for an SoC having IPA v3.1 */
|
||||
enum ipa_resource_type {
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2021 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../ipa_data.h"
|
||||
#include "../ipa_endpoint.h"
|
||||
#include "../ipa_mem.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
/** enum ipa_resource_type - IPA resource types for an SoC having IPA v3.5.1 */
|
||||
enum ipa_resource_type {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2021 Linaro Ltd. */
|
||||
/* Copyright (C) 2021-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../ipa_data.h"
|
||||
#include "../ipa_endpoint.h"
|
||||
#include "../ipa_mem.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
/** enum ipa_resource_type - IPA resource types for an SoC having IPA v4.11 */
|
||||
enum ipa_resource_type {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2019-2021 Linaro Ltd. */
|
||||
/* Copyright (C) 2019-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../ipa_data.h"
|
||||
#include "../ipa_endpoint.h"
|
||||
#include "../ipa_mem.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
/** enum ipa_resource_type - IPA resource types for an SoC having IPA v4.2 */
|
||||
enum ipa_resource_type {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2021 Linaro Ltd. */
|
||||
/* Copyright (C) 2021-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../ipa_data.h"
|
||||
#include "../ipa_endpoint.h"
|
||||
#include "../ipa_mem.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
/** enum ipa_resource_type - IPA resource types for an SoC having IPA v4.5 */
|
||||
enum ipa_resource_type {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2022 Linaro Ltd. */
|
||||
/* Copyright (C) 2022-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../ipa_data.h"
|
||||
#include "../ipa_endpoint.h"
|
||||
#include "../ipa_mem.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
/** enum ipa_resource_type - IPA resource types for an SoC having IPA v4.7 */
|
||||
enum ipa_resource_type {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2021 Linaro Ltd. */
|
||||
/* Copyright (C) 2021-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../ipa_data.h"
|
||||
#include "../ipa_endpoint.h"
|
||||
#include "../ipa_mem.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
/** enum ipa_resource_type - IPA resource types for an SoC having IPA v4.9 */
|
||||
enum ipa_resource_type {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../ipa_data.h"
|
||||
#include "../ipa_endpoint.h"
|
||||
#include "../ipa_mem.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
/** enum ipa_resource_type - IPA resource types for an SoC having IPA v5.0 */
|
||||
enum ipa_resource_type {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "../ipa_data.h"
|
||||
#include "../ipa_endpoint.h"
|
||||
#include "../ipa_mem.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
/** enum ipa_resource_type - IPA resource types for an SoC having IPA v5.5 */
|
||||
enum ipa_resource_type {
|
||||
|
||||
+8
-10
@@ -1,28 +1,26 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2023 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "gsi.h"
|
||||
#include "reg.h"
|
||||
#include "gsi_reg.h"
|
||||
#include "gsi_private.h"
|
||||
#include "gsi_reg.h"
|
||||
#include "gsi_trans.h"
|
||||
#include "ipa_gsi.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_gsi.h"
|
||||
#include "ipa_version.h"
|
||||
#include "reg.h"
|
||||
|
||||
/**
|
||||
* DOC: The IPA Generic Software Interface
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2023 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _GSI_H_
|
||||
#define _GSI_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa_version.h"
|
||||
|
||||
@@ -23,12 +21,10 @@
|
||||
#define GSI_TLV_MAX 64
|
||||
|
||||
struct device;
|
||||
struct scatterlist;
|
||||
struct platform_device;
|
||||
|
||||
struct gsi;
|
||||
struct gsi_trans;
|
||||
struct gsi_channel_data;
|
||||
struct ipa_gsi_endpoint_data;
|
||||
|
||||
struct gsi_ring {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _GSI_PRIVATE_H_
|
||||
#define _GSI_PRIVATE_H_
|
||||
@@ -10,9 +10,10 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct gsi_trans;
|
||||
struct gsi_ring;
|
||||
struct gsi;
|
||||
struct gsi_channel;
|
||||
struct gsi_ring;
|
||||
struct gsi_trans;
|
||||
|
||||
#define GSI_RING_ELEMENT_SIZE 16 /* bytes; must be a power of 2 */
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include "gsi.h"
|
||||
#include "reg.h"
|
||||
#include "gsi_reg.h"
|
||||
#include "reg.h"
|
||||
|
||||
/* Is this register ID valid for the current GSI version? */
|
||||
static bool gsi_reg_id_valid(struct gsi *gsi, enum gsi_reg_id reg_id)
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2022 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/dma-direction.h>
|
||||
#include <linux/refcount.h>
|
||||
#include <linux/scatterlist.h>
|
||||
#include <linux/dma-direction.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "gsi.h"
|
||||
#include "gsi_private.h"
|
||||
#include "gsi_trans.h"
|
||||
#include "ipa_gsi.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_gsi.h"
|
||||
|
||||
/**
|
||||
* DOC: GSI Transactions
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2022 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _GSI_TRANS_H_
|
||||
#define _GSI_TRANS_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/refcount.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/dma-direction.h>
|
||||
#include <linux/refcount.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa_cmd.h"
|
||||
|
||||
struct device;
|
||||
struct page;
|
||||
struct scatterlist;
|
||||
struct device;
|
||||
struct sk_buff;
|
||||
|
||||
struct gsi;
|
||||
struct gsi_trans;
|
||||
struct gsi_trans_pool;
|
||||
|
||||
/* Maximum number of TREs in an IPA immediate command transaction */
|
||||
|
||||
+5
-10
@@ -1,30 +1,25 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_H_
|
||||
#define _IPA_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/pm_wakeup.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa_version.h"
|
||||
#include "gsi.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_qmi.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_interrupt.h"
|
||||
#include "ipa_version.h"
|
||||
|
||||
struct clk;
|
||||
struct icc_path;
|
||||
struct net_device;
|
||||
|
||||
struct ipa_interrupt;
|
||||
struct ipa_power;
|
||||
struct ipa_smp2p;
|
||||
struct ipa_interrupt;
|
||||
|
||||
/**
|
||||
* struct ipa - IPA information
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2023 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/dma-direction.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "gsi.h"
|
||||
#include "gsi_trans.h"
|
||||
#include "ipa.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_table.h"
|
||||
|
||||
/**
|
||||
* DOC: IPA Immediate Commands
|
||||
|
||||
@@ -1,21 +1,17 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2022 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_CMD_H_
|
||||
#define _IPA_CMD_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/dma-direction.h>
|
||||
|
||||
struct sk_buff;
|
||||
struct scatterlist;
|
||||
|
||||
struct gsi_channel;
|
||||
struct gsi_trans;
|
||||
struct ipa;
|
||||
struct ipa_mem;
|
||||
struct gsi_trans;
|
||||
struct gsi_channel;
|
||||
|
||||
/**
|
||||
* enum ipa_cmd_opcode: IPA immediate commands
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2023 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_DATA_H_
|
||||
#define _IPA_DATA_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa_version.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_version.h"
|
||||
|
||||
/**
|
||||
* DOC: IPA/GSI Configuration Data
|
||||
|
||||
@@ -1,27 +1,30 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2023 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/if_rmnet.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/dma-direction.h>
|
||||
#include <linux/if_rmnet.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "gsi.h"
|
||||
#include "gsi_trans.h"
|
||||
#include "ipa.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "ipa_gsi.h"
|
||||
#include "ipa_interrupt.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_modem.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_gsi.h"
|
||||
#include "ipa_power.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_version.h"
|
||||
|
||||
/* Hardware is told about receive buffers once a "batch" has been queued */
|
||||
#define IPA_REPLENISH_BATCH 16 /* Must be non-zero */
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
#include "gsi.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_version.h"
|
||||
|
||||
struct net_device;
|
||||
struct sk_buff;
|
||||
|
||||
struct gsi_trans;
|
||||
struct ipa;
|
||||
struct ipa_gsi_endpoint_data;
|
||||
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2020 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa_gsi.h"
|
||||
#include "gsi_trans.h"
|
||||
#include "ipa.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_gsi.h"
|
||||
#include "ipa_version.h"
|
||||
|
||||
void ipa_gsi_trans_complete(struct gsi_trans *trans)
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
/* DOC: IPA Interrupts
|
||||
@@ -19,18 +19,18 @@
|
||||
* time only these three are supported.
|
||||
*/
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/pm_wakeirq.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_power.h"
|
||||
#include "ipa_uc.h"
|
||||
#include "ipa_interrupt.h"
|
||||
#include "ipa_power.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_uc.h"
|
||||
|
||||
/**
|
||||
* struct ipa_interrupt - IPA interrupt information
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_INTERRUPT_H_
|
||||
#define _IPA_INTERRUPT_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/bits.h>
|
||||
|
||||
struct platform_device;
|
||||
|
||||
struct ipa;
|
||||
struct ipa_interrupt;
|
||||
|
||||
enum ipa_irq_id;
|
||||
|
||||
/**
|
||||
|
||||
+14
-15
@@ -1,38 +1,37 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2023 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <linux/firmware/qcom/qcom_scm.h>
|
||||
#include <linux/soc/qcom/mdt_loader.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_power.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_resource.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_smp2p.h"
|
||||
#include "ipa_modem.h"
|
||||
#include "ipa_uc.h"
|
||||
#include "ipa_interrupt.h"
|
||||
#include "gsi_trans.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_modem.h"
|
||||
#include "ipa_power.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_resource.h"
|
||||
#include "ipa_smp2p.h"
|
||||
#include "ipa_sysfs.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_uc.h"
|
||||
#include "ipa_version.h"
|
||||
|
||||
/**
|
||||
* DOC: The IP Accelerator
|
||||
|
||||
+10
-11
@@ -1,25 +1,24 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2023 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/iommu.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <linux/soc/qcom/smem.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_table.h"
|
||||
#include "gsi_trans.h"
|
||||
#include "ipa.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_table.h"
|
||||
|
||||
/* "Canary" value placed between memory regions to detect overflow */
|
||||
#define IPA_MEM_CANARY_VAL cpu_to_le32(0xdeadbeef)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2023 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_MEM_H_
|
||||
#define _IPA_MEM_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct platform_device;
|
||||
|
||||
struct ipa;
|
||||
|
||||
@@ -1,29 +1,27 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/errno.h>
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/if_rmnet.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <net/pkt_sched.h>
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/if_rmnet.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <net/pkt_sched.h>
|
||||
|
||||
#include <linux/remoteproc/qcom_rproc.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_modem.h"
|
||||
#include "ipa_smp2p.h"
|
||||
#include "ipa_qmi.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_uc.h"
|
||||
#include "ipa_power.h"
|
||||
|
||||
#define IPA_NETDEV_NAME "rmnet_ipa%d"
|
||||
#define IPA_NETDEV_TAILROOM 0 /* for padding by mux layer */
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_MODEM_H_
|
||||
#define _IPA_MODEM_H_
|
||||
|
||||
struct ipa;
|
||||
struct net_device;
|
||||
struct sk_buff;
|
||||
|
||||
struct ipa;
|
||||
|
||||
int ipa_modem_start(struct ipa *ipa);
|
||||
int ipa_modem_stop(struct ipa *ipa);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/clk.h>
|
||||
@@ -9,15 +9,15 @@
|
||||
#include <linux/interconnect.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#include "linux/soc/qcom/qcom_aoss.h"
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_power.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_modem.h"
|
||||
#include "ipa_data.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_interrupt.h"
|
||||
#include "ipa_modem.h"
|
||||
#include "ipa_power.h"
|
||||
|
||||
/**
|
||||
* DOC: IPA Power Management
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_POWER_H_
|
||||
#define _IPA_POWER_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct device;
|
||||
|
||||
struct ipa;
|
||||
struct ipa_power_data;
|
||||
enum ipa_irq_id;
|
||||
|
||||
/* IPA device power management function block */
|
||||
extern const struct dev_pm_ops ipa_pm_ops;
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/qrtr.h>
|
||||
#include <linux/soc/qcom/qmi.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_modem.h"
|
||||
#include "ipa_qmi_msg.h"
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_QMI_H_
|
||||
#define _IPA_QMI_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
#include <linux/soc/qcom/qmi.h>
|
||||
|
||||
struct ipa;
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#include <linux/stddef.h>
|
||||
|
||||
#include <linux/soc/qcom/qmi.h>
|
||||
|
||||
#include "ipa_qmi_msg.h"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_QMI_MSG_H_
|
||||
#define _IPA_QMI_MSG_H_
|
||||
@@ -9,6 +9,7 @@
|
||||
/* === Only "ipa_qmi" and "ipa_qmi_msg.c" should include this file === */
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <linux/soc/qcom/qmi.h>
|
||||
|
||||
/* Request/response/indication QMI message ids used for IPA. Receiving
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2023 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_reg.h"
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2023 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_REG_H_
|
||||
#define _IPA_REG_H_
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/bug.h>
|
||||
|
||||
#include "ipa_version.h"
|
||||
#include "reg.h"
|
||||
|
||||
struct platform_device;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/kernel.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_data.h"
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2022 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/panic_notifier.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/soc/qcom/smem.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <linux/soc/qcom/smem_state.h>
|
||||
|
||||
#include "ipa_smp2p.h"
|
||||
#include "ipa.h"
|
||||
#include "ipa_smp2p.h"
|
||||
#include "ipa_uc.h"
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2021-2022 Linaro Ltd. */
|
||||
/* Copyright (C) 2021-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/sysfs.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_version.h"
|
||||
#include "ipa_sysfs.h"
|
||||
#include "ipa_version.h"
|
||||
|
||||
static const char *ipa_version_string(struct ipa *ipa)
|
||||
{
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2022 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_SYSFS_H_
|
||||
#define _IPA_SYSFS_H_
|
||||
|
||||
struct attribute_group;
|
||||
|
||||
extern const struct attribute_group ipa_attribute_group;
|
||||
extern const struct attribute_group ipa_feature_attribute_group;
|
||||
extern const struct attribute_group ipa_endpoint_id_attribute_group;
|
||||
|
||||
@@ -4,25 +4,22 @@
|
||||
* Copyright (C) 2018-2023 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/build_bug.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_version.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "gsi.h"
|
||||
#include "gsi_trans.h"
|
||||
#include "ipa.h"
|
||||
#include "ipa_cmd.h"
|
||||
#include "ipa_endpoint.h"
|
||||
#include "ipa_mem.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_table.h"
|
||||
#include "ipa_version.h"
|
||||
|
||||
/**
|
||||
* DOC: IPA Filter and Route Tables
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2022 Linaro Ltd.
|
||||
* Copyright (C) 2018-2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "ipa.h"
|
||||
#include "ipa_uc.h"
|
||||
#include "ipa_interrupt.h"
|
||||
#include "ipa_power.h"
|
||||
#include "ipa_reg.h"
|
||||
#include "ipa_uc.h"
|
||||
|
||||
/**
|
||||
* DOC: The IPA embedded microcontroller
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2022 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_UC_H_
|
||||
#define _IPA_UC_H_
|
||||
|
||||
struct ipa;
|
||||
enum ipa_irq_id;
|
||||
|
||||
/**
|
||||
* ipa_uc_interrupt_handler() - Handler for microcontroller IPA interrupts
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2022 Linaro Ltd.
|
||||
* Copyright (C) 2019-2024 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_VERSION_H_
|
||||
#define _IPA_VERSION_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* enum ipa_version
|
||||
* @IPA_VERSION_3_0: IPA version 3.0/GSI version 1.0
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* *Copyright (C) 2022-2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2022-2024 Linaro Ltd. */
|
||||
|
||||
#ifndef _REG_H_
|
||||
#define _REG_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/log2.h>
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/log2.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct reg - A register descriptor
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../reg.h"
|
||||
#include "../gsi_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
#include "../reg.h"
|
||||
|
||||
REG(INTER_EE_SRC_CH_IRQ_MSK, inter_ee_src_ch_irq_msk,
|
||||
0x0000c020 + 0x1000 * GSI_EE_AP);
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../reg.h"
|
||||
#include "../gsi_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
#include "../reg.h"
|
||||
|
||||
REG(INTER_EE_SRC_CH_IRQ_MSK, inter_ee_src_ch_irq_msk,
|
||||
0x0000c020 + 0x1000 * GSI_EE_AP);
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../reg.h"
|
||||
#include "../gsi_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
#include "../reg.h"
|
||||
|
||||
REG(INTER_EE_SRC_CH_IRQ_MSK, inter_ee_src_ch_irq_msk,
|
||||
0x0000c020 + 0x1000 * GSI_EE_AP);
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../reg.h"
|
||||
#include "../gsi_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
#include "../reg.h"
|
||||
|
||||
REG(INTER_EE_SRC_CH_IRQ_MSK, inter_ee_src_ch_irq_msk,
|
||||
0x0000c020 + 0x1000 * GSI_EE_AP);
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../reg.h"
|
||||
#include "../gsi_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
#include "../reg.h"
|
||||
|
||||
REG(INTER_EE_SRC_CH_IRQ_MSK, inter_ee_src_ch_irq_msk,
|
||||
0x0000c020 + 0x1000 * GSI_EE_AP);
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../reg.h"
|
||||
#include "../gsi_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
#include "../reg.h"
|
||||
|
||||
REG(INTER_EE_SRC_CH_IRQ_MSK, inter_ee_src_ch_irq_msk,
|
||||
0x0000c020 + 0x1000 * GSI_EE_AP);
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../gsi.h"
|
||||
#include "../reg.h"
|
||||
#include "../gsi_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
#include "../reg.h"
|
||||
|
||||
REG(INTER_EE_SRC_CH_IRQ_MSK, inter_ee_src_ch_irq_msk,
|
||||
0x0000c01c + 0x1000 * GSI_EE_AP);
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2022 Linaro Ltd. */
|
||||
/* Copyright (C) 2022-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../ipa.h"
|
||||
#include "../ipa_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
static const u32 reg_comp_cfg_fmask[] = {
|
||||
[COMP_CFG_ENABLE] = BIT(0),
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2022 Linaro Ltd. */
|
||||
/* Copyright (C) 2022-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../ipa.h"
|
||||
#include "../ipa_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
static const u32 reg_comp_cfg_fmask[] = {
|
||||
[COMP_CFG_ENABLE] = BIT(0),
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2022 Linaro Ltd. */
|
||||
/* Copyright (C) 2022-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../ipa.h"
|
||||
#include "../ipa_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
static const u32 reg_comp_cfg_fmask[] = {
|
||||
[RAM_ARB_PRI_CLIENT_SAMP_FIX_DIS] = BIT(0),
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2022 Linaro Ltd. */
|
||||
/* Copyright (C) 2022-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../ipa.h"
|
||||
#include "../ipa_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
static const u32 reg_comp_cfg_fmask[] = {
|
||||
/* Bit 0 reserved */
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2022 Linaro Ltd. */
|
||||
/* Copyright (C) 2022-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../ipa.h"
|
||||
#include "../ipa_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
static const u32 reg_comp_cfg_fmask[] = {
|
||||
/* Bit 0 reserved */
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2022 Linaro Ltd. */
|
||||
/* Copyright (C) 2022-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../ipa.h"
|
||||
#include "../ipa_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
static const u32 reg_comp_cfg_fmask[] = {
|
||||
[RAM_ARB_PRI_CLIENT_SAMP_FIX_DIS] = BIT(0),
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2022 Linaro Ltd. */
|
||||
/* Copyright (C) 2022-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../ipa.h"
|
||||
#include "../ipa_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
static const u32 reg_comp_cfg_fmask[] = {
|
||||
[RAM_ARB_PRI_CLIENT_SAMP_FIX_DIS] = BIT(0),
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../ipa.h"
|
||||
#include "../ipa_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
static const u32 reg_flavor_0_fmask[] = {
|
||||
[MAX_PIPES] = GENMASK(7, 0),
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. */
|
||||
/* Copyright (C) 2023-2024 Linaro Ltd. */
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "../ipa_reg.h"
|
||||
#include "../ipa_version.h"
|
||||
|
||||
@@ -1375,6 +1375,8 @@ static const struct usb_device_id products[] = {
|
||||
{QMI_FIXED_INTF(0x1c9e, 0x9801, 3)}, /* Telewell TW-3G HSPA+ */
|
||||
{QMI_FIXED_INTF(0x1c9e, 0x9803, 4)}, /* Telewell TW-3G HSPA+ */
|
||||
{QMI_FIXED_INTF(0x1c9e, 0x9b01, 3)}, /* XS Stick W100-2 from 4G Systems */
|
||||
{QMI_QUIRK_SET_DTR(0x1c9e, 0x9b05, 4)}, /* Longsung U8300 */
|
||||
{QMI_QUIRK_SET_DTR(0x1c9e, 0x9b3c, 4)}, /* Longsung U9300 */
|
||||
{QMI_FIXED_INTF(0x0b3c, 0xc000, 4)}, /* Olivetti Olicard 100 */
|
||||
{QMI_FIXED_INTF(0x0b3c, 0xc001, 4)}, /* Olivetti Olicard 120 */
|
||||
{QMI_FIXED_INTF(0x0b3c, 0xc002, 4)}, /* Olivetti Olicard 140 */
|
||||
|
||||
@@ -734,7 +734,9 @@ out_neigh_release:
|
||||
struct neighbour *__neigh_create(struct neigh_table *tbl, const void *pkey,
|
||||
struct net_device *dev, bool want_ref)
|
||||
{
|
||||
return ___neigh_create(tbl, pkey, dev, 0, false, want_ref);
|
||||
bool exempt_from_gc = !!(dev->flags & IFF_LOOPBACK);
|
||||
|
||||
return ___neigh_create(tbl, pkey, dev, 0, exempt_from_gc, want_ref);
|
||||
}
|
||||
EXPORT_SYMBOL(__neigh_create);
|
||||
|
||||
|
||||
@@ -1093,7 +1093,7 @@ static int rtnl_net_dumpid(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
end:
|
||||
if (net_cb.fillargs.add_ref)
|
||||
put_net(net_cb.tgt_net);
|
||||
return err < 0 ? err : skb->len;
|
||||
return err;
|
||||
}
|
||||
|
||||
static void rtnl_net_notifyid(struct net *net, int cmd, int id, u32 portid,
|
||||
@@ -1208,7 +1208,8 @@ void __init net_ns_init(void)
|
||||
rtnl_register(PF_UNSPEC, RTM_NEWNSID, rtnl_net_newid, NULL,
|
||||
RTNL_FLAG_DOIT_UNLOCKED);
|
||||
rtnl_register(PF_UNSPEC, RTM_GETNSID, rtnl_net_getid, rtnl_net_dumpid,
|
||||
RTNL_FLAG_DOIT_UNLOCKED);
|
||||
RTNL_FLAG_DOIT_UNLOCKED |
|
||||
RTNL_FLAG_DUMP_UNLOCKED);
|
||||
}
|
||||
|
||||
static void free_exit_list(struct pernet_operations *ops, struct list_head *net_exit_list)
|
||||
|
||||
@@ -766,6 +766,7 @@ static int tcp_metrics_nl_dump(struct sk_buff *skb,
|
||||
unsigned int max_rows = 1U << tcp_metrics_hash_log;
|
||||
unsigned int row, s_row = cb->args[0];
|
||||
int s_col = cb->args[1], col = s_col;
|
||||
int res = 0;
|
||||
|
||||
for (row = s_row; row < max_rows; row++, s_col = 0) {
|
||||
struct tcp_metrics_block *tm;
|
||||
@@ -778,7 +779,8 @@ static int tcp_metrics_nl_dump(struct sk_buff *skb,
|
||||
continue;
|
||||
if (col < s_col)
|
||||
continue;
|
||||
if (tcp_metrics_dump_info(skb, cb, tm) < 0) {
|
||||
res = tcp_metrics_dump_info(skb, cb, tm);
|
||||
if (res < 0) {
|
||||
rcu_read_unlock();
|
||||
goto done;
|
||||
}
|
||||
@@ -789,7 +791,7 @@ static int tcp_metrics_nl_dump(struct sk_buff *skb,
|
||||
done:
|
||||
cb->args[0] = row;
|
||||
cb->args[1] = col;
|
||||
return skb->len;
|
||||
return res;
|
||||
}
|
||||
|
||||
static int __parse_nl_addr(struct genl_info *info, struct inetpeer_addr *addr,
|
||||
@@ -986,6 +988,7 @@ static struct genl_family tcp_metrics_nl_family __ro_after_init = {
|
||||
.maxattr = TCP_METRICS_ATTR_MAX,
|
||||
.policy = tcp_metrics_nl_policy,
|
||||
.netnsok = true,
|
||||
.parallel_ops = true,
|
||||
.module = THIS_MODULE,
|
||||
.small_ops = tcp_metrics_nl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(tcp_metrics_nl_ops),
|
||||
|
||||
@@ -135,18 +135,7 @@ TEST_GEN_PROGS_EXTENDED = test_sock_addr test_skb_cgroup_id_user \
|
||||
|
||||
TEST_GEN_FILES += liburandom_read.so urandom_read sign-file uprobe_multi
|
||||
|
||||
# Emit succinct information message describing current building step
|
||||
# $1 - generic step name (e.g., CC, LINK, etc);
|
||||
# $2 - optional "flavor" specifier; if provided, will be emitted as [flavor];
|
||||
# $3 - target (assumed to be file); only file name will be emitted;
|
||||
# $4 - optional extra arg, emitted as-is, if provided.
|
||||
ifeq ($(V),1)
|
||||
Q =
|
||||
msg =
|
||||
else
|
||||
Q = @
|
||||
msg = @printf ' %-8s%s %s%s\n' "$(1)" "$(if $(2), [$(2)])" "$(notdir $(3))" "$(if $(4), $(4))";
|
||||
MAKEFLAGS += --no-print-directory
|
||||
ifneq ($(V),1)
|
||||
submake_extras := feature_display=0
|
||||
endif
|
||||
|
||||
|
||||
@@ -52,6 +52,20 @@ endif
|
||||
selfdir = $(realpath $(dir $(filter %/lib.mk,$(MAKEFILE_LIST))))
|
||||
top_srcdir = $(selfdir)/../../..
|
||||
|
||||
# msg: emit succinct information message describing current building step
|
||||
# $1 - generic step name (e.g., CC, LINK, etc);
|
||||
# $2 - optional "flavor" specifier; if provided, will be emitted as [flavor];
|
||||
# $3 - target (assumed to be file); only file name will be emitted;
|
||||
# $4 - optional extra arg, emitted as-is, if provided.
|
||||
ifeq ($(V),1)
|
||||
Q =
|
||||
msg =
|
||||
else
|
||||
Q = @
|
||||
msg = @printf ' %-8s%s %s%s\n' "$(1)" "$(if $(2), [$(2)])" "$(notdir $(3))" "$(if $(4), $(4))";
|
||||
MAKEFLAGS += --no-print-directory
|
||||
endif
|
||||
|
||||
ifeq ($(KHDR_INCLUDES),)
|
||||
KHDR_INCLUDES := -D_GNU_SOURCE -isystem $(top_srcdir)/usr/include
|
||||
endif
|
||||
@@ -184,7 +198,8 @@ endif
|
||||
ifeq ($(OVERRIDE_TARGETS),)
|
||||
LOCAL_HDRS += $(selfdir)/kselftest_harness.h $(selfdir)/kselftest.h
|
||||
$(OUTPUT)/%:%.c $(LOCAL_HDRS)
|
||||
$(LINK.c) $(filter-out $(LOCAL_HDRS),$^) $(LDLIBS) -o $@
|
||||
$(call msg,CC,,$@)
|
||||
$(Q)$(LINK.c) $(filter-out $(LOCAL_HDRS),$^) $(LDLIBS) -o $@
|
||||
|
||||
$(OUTPUT)/%.o:%.S
|
||||
$(COMPILE.S) $^ -o $@
|
||||
|
||||
@@ -125,7 +125,8 @@ BPFOBJ := $(BUILD_DIR)/libbpf/libbpf.a
|
||||
|
||||
MAKE_DIRS := $(BUILD_DIR)/libbpf
|
||||
$(MAKE_DIRS):
|
||||
mkdir -p $@
|
||||
$(call msg,MKDIR,,$@)
|
||||
$(Q)mkdir -p $@
|
||||
|
||||
# Get Clang's default includes on this system, as opposed to those seen by
|
||||
# '--target=bpf'. This fixes "missing" files on some architectures/distros,
|
||||
@@ -149,13 +150,15 @@ BPF_PROG_OBJS := $(OUTPUT)/nat6to4.o $(OUTPUT)/xdp_dummy.o \
|
||||
$(OUTPUT)/sample_map_ret0.bpf.o $(OUTPUT)/sample_ret0.bpf.o
|
||||
|
||||
$(BPF_PROG_OBJS): $(OUTPUT)/%.o : %.c $(BPFOBJ) | $(MAKE_DIRS)
|
||||
$(CLANG) -O2 -g --target=bpf $(CCINCLUDE) $(CLANG_SYS_INCLUDES) \
|
||||
$(call msg,BPF_PROG,,$@)
|
||||
$(Q)$(CLANG) -O2 -g --target=bpf $(CCINCLUDE) $(CLANG_SYS_INCLUDES) \
|
||||
-c $< -o $@
|
||||
|
||||
$(BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \
|
||||
$(APIDIR)/linux/bpf.h \
|
||||
| $(BUILD_DIR)/libbpf
|
||||
$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BUILD_DIR)/libbpf/ \
|
||||
$(call msg,MAKE,,$@)
|
||||
$(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BUILD_DIR)/libbpf/ \
|
||||
EXTRA_CFLAGS='-g -O0' \
|
||||
DESTDIR=$(SCRATCH_DIR) prefix= all install_headers
|
||||
|
||||
|
||||
@@ -489,7 +489,7 @@ class ovsactions(nla):
|
||||
actstr, reason = parse_extract_field(
|
||||
actstr,
|
||||
"drop(",
|
||||
"([0-9]+)",
|
||||
r"([0-9]+)",
|
||||
lambda x: int(x, 0),
|
||||
False,
|
||||
None,
|
||||
@@ -502,9 +502,9 @@ class ovsactions(nla):
|
||||
actstr = actstr[len("drop"): ]
|
||||
return (totallen - len(actstr))
|
||||
|
||||
elif parse_starts_block(actstr, "^(\d+)", False, True):
|
||||
elif parse_starts_block(actstr, r"^(\d+)", False, True):
|
||||
actstr, output = parse_extract_field(
|
||||
actstr, None, "(\d+)", lambda x: int(x), False, "0"
|
||||
actstr, None, r"(\d+)", lambda x: int(x), False, "0"
|
||||
)
|
||||
self["attrs"].append(["OVS_ACTION_ATTR_OUTPUT", output])
|
||||
parsed = True
|
||||
@@ -512,7 +512,7 @@ class ovsactions(nla):
|
||||
actstr, recircid = parse_extract_field(
|
||||
actstr,
|
||||
"recirc(",
|
||||
"([0-9a-fA-Fx]+)",
|
||||
r"([0-9a-fA-Fx]+)",
|
||||
lambda x: int(x, 0),
|
||||
False,
|
||||
0,
|
||||
@@ -588,17 +588,17 @@ class ovsactions(nla):
|
||||
actstr = actstr[3:]
|
||||
|
||||
actstr, ip_block_min = parse_extract_field(
|
||||
actstr, "=", "([0-9a-fA-F\.]+)", str, False
|
||||
actstr, "=", r"([0-9a-fA-F\.]+)", str, False
|
||||
)
|
||||
actstr, ip_block_max = parse_extract_field(
|
||||
actstr, "-", "([0-9a-fA-F\.]+)", str, False
|
||||
actstr, "-", r"([0-9a-fA-F\.]+)", str, False
|
||||
)
|
||||
|
||||
actstr, proto_min = parse_extract_field(
|
||||
actstr, ":", "(\d+)", int, False
|
||||
actstr, ":", r"(\d+)", int, False
|
||||
)
|
||||
actstr, proto_max = parse_extract_field(
|
||||
actstr, "-", "(\d+)", int, False
|
||||
actstr, "-", r"(\d+)", int, False
|
||||
)
|
||||
|
||||
if t is not None:
|
||||
|
||||
Reference in New Issue
Block a user