| /linux/drivers/gpu/drm/ |
| H A D | drm_bridge.c | 50 * A bridge is always attached to a single &drm_encoder at a time, but can be 53 * [ CRTC ---> ] Encoder ---> Bridge A ---> Bridge B 55 * Here, the output of the encoder feeds to bridge A, and that furthers feeds to 56 * bridge B. Bridge chains can be arbitrarily long, and shall be fully linear: 57 * Chaining multiple bridges to the output of a bridge, or the same bridge to 69 * Display drivers are responsible for linking encoders with the first bridge 70 * in the chains. This is done by acquiring the appropriate bridge with 71 * devm_drm_of_get_bridge(). Once acquired, the bridge shall be attached to the 74 * Bridges are responsible for linking themselves with the next bridge in the 96 * DRM bridge chain functions shall be called manually. [all …]
|
| /linux/drivers/fpga/ |
| H A D | fpga-bridge.c | 3 * FPGA Bridge Framework Driver 8 #include <linux/fpga/fpga-bridge.h> 23 * fpga_bridge_enable - Enable transactions on the bridge 25 * @bridge: FPGA bridge 29 int fpga_bridge_enable(struct fpga_bridge *bridge) in fpga_bridge_enable() argument 31 dev_dbg(&bridge->dev, "enable\n"); in fpga_bridge_enable() 33 if (bridge->br_ops->enable_set) in fpga_bridge_enable() 34 return bridge->br_ops->enable_set(bridge, 1); in fpga_bridge_enable() 41 * fpga_bridge_disable - Disable transactions on the bridge 43 * @bridge: FPGA bridge [all …]
|
| /linux/drivers/char/agp/ |
| H A D | backend.c | 70 struct agp_bridge_data *bridge; in agp_backend_acquire() local 72 bridge = agp_find_bridge(pdev); in agp_backend_acquire() 74 if (!bridge) in agp_backend_acquire() 77 if (atomic_read(&bridge->agp_in_use)) in agp_backend_acquire() 79 atomic_inc(&bridge->agp_in_use); in agp_backend_acquire() 80 return bridge; in agp_backend_acquire() 87 * @bridge: the AGP backend to release 94 void agp_backend_release(struct agp_bridge_data *bridge) in agp_backend_release() argument 97 if (bridge) in agp_backend_release() 98 atomic_dec(&bridge->agp_in_use); in agp_backend_release() [all …]
|
| H A D | generic.c | 178 curr->bridge->driver->free_by_type(curr); in agp_free_memory() 182 if (curr->bridge->driver->agp_destroy_pages) { in agp_free_memory() 183 curr->bridge->driver->agp_destroy_pages(curr); in agp_free_memory() 187 curr->bridge->driver->agp_destroy_page( in agp_free_memory() 192 curr->bridge->driver->agp_destroy_page( in agp_free_memory() 209 * @bridge: an agp_bridge_data struct allocated for the AGP host bridge. 213 * Every agp bridge device will allow you to allocate AGP_NORMAL_MEMORY which 218 struct agp_memory *agp_allocate_memory(struct agp_bridge_data *bridge, in agp_allocate_memory() argument 226 if (!bridge) in agp_allocate_memory() 229 cur_memory = atomic_read(&bridge->current_memory_agp); in agp_allocate_memory() [all …]
|
| /linux/tools/testing/selftests/net/forwarding/ |
| H A D | bridge_mdb.sh | 70 ip link add name br0 type bridge \ 73 bridge vlan add vid 10 dev br0 self 74 bridge vlan add vid 20 dev br0 self 79 bridge vlan add vid 10 dev $swp1 80 bridge vlan add vid 20 dev $swp1 84 bridge vlan add vid 10 dev $swp2 85 bridge vlan add vid 20 dev $swp2 96 bridge vlan del vid 20 dev $swp2 97 bridge vlan del vid 10 dev $swp2 101 bridge vla [all...] |
| H A D | bridge_locked_port.sh | 45 ip link add dev br0 type bridge vlan_filtering 1 50 bridge link set dev $swp1 learning off 102 bridge link set dev $swp1 locked on 107 bridge fdb add `mac_get $h1` dev $swp1 master static 112 bridge link set dev $swp1 locked off 113 bridge fdb del `mac_get $h1` dev $swp1 master static 127 bridge vlan add vid 100 dev $swp1 128 bridge vlan add vid 100 dev $swp2 133 bridge link set dev $swp1 locked on 137 bridge fdb add `mac_get $h1` dev $swp1 vlan 100 master static [all …]
|
| H A D | bridge_vlan_mcast.sh | 40 ip link add dev br0 type bridge mcast_snooping 1 mcast_querier 1 vlan_filtering 1 52 bridge vlan add vid 10-11 dev $swp1 master 53 bridge vlan add vid 10-11 dev $swp2 master 55 ip link set dev br0 type bridge mcast_vlan_snooping 1 108 bridge -j mdb show dev br0 | 120 bridge -j mdb show dev br0 | 130 local goutput=`bridge -j vlan global show` 144 bridge vlan global set vid 10 dev br0 mcast_snooping 0 176 ip link set dev br0 type bridge mcast_stats_enabled 1 183 ip link set dev br0 type bridge mcast_stats_enabled 0 [all …]
|
| /linux/drivers/gpu/drm/bridge/ |
| H A D | panel.c | 22 struct drm_bridge bridge; member 29 drm_bridge_to_panel_bridge(struct drm_bridge *bridge) in drm_bridge_to_panel_bridge() argument 31 return container_of(bridge, struct panel_bridge, bridge); in drm_bridge_to_panel_bridge() 61 static int panel_bridge_attach(struct drm_bridge *bridge, in panel_bridge_attach() argument 65 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); in panel_bridge_attach() 75 ret = drm_connector_init(bridge->dev, connector, in panel_bridge_attach() 83 drm_panel_bridge_set_orientation(connector, bridge); in panel_bridge_attach() 88 if (bridge->dev->registered) { in panel_bridge_attach() 97 static void panel_bridge_detach(struct drm_bridge *bridge) in panel_bridge_detach() argument 99 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); in panel_bridge_detach() [all …]
|
| H A D | display-connector.c | 21 struct drm_bridge bridge; member 31 to_display_connector(struct drm_bridge *bridge) in to_display_connector() argument 33 return container_of(bridge, struct display_connector, bridge); in to_display_connector() 36 static int display_connector_attach(struct drm_bridge *bridge, in display_connector_attach() argument 43 static enum drm_connector_status display_connector_detect(struct drm_bridge *bridge) in display_connector_detect() argument 45 struct display_connector *conn = to_display_connector(bridge); in display_connector_detect() 54 if (conn->bridge.ddc && drm_probe_ddc(conn->bridge.ddc)) in display_connector_detect() 57 switch (conn->bridge.type) { in display_connector_detect() 85 display_connector_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector) in display_connector_bridge_detect() argument 87 return display_connector_detect(bridge); in display_connector_bridge_detect() [all …]
|
| H A D | ti-tfp410.c | 25 struct drm_bridge bridge; member 38 drm_bridge_to_tfp410(struct drm_bridge *bridge) in drm_bridge_to_tfp410() argument 40 return container_of(bridge, struct tfp410, bridge); in drm_bridge_to_tfp410() 55 if (dvi->bridge.next_bridge->ops & DRM_BRIDGE_OP_EDID) { in tfp410_get_modes() 56 drm_edid = drm_bridge_edid_read(dvi->bridge.next_bridge, connector); in tfp410_get_modes() 91 return drm_bridge_detect(dvi->bridge.next_bridge, connector); in tfp410_connector_detect() 109 if (dvi->bridge.dev) in tfp410_hpd_work_func() 110 drm_helper_hpd_irq_event(dvi->bridge.dev); in tfp410_hpd_work_func() 121 static int tfp410_attach(struct drm_bridge *bridge, in tfp410_attach() argument 125 struct tfp410 *dvi = drm_bridge_to_tfp410(bridge); in tfp410_attach() [all …]
|
| /linux/drivers/media/usb/gspca/m5602/ |
| H A D | m5602_ov7660.c | 23 {BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02}, 24 {BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0}, 25 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00}, 26 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0}, 27 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0}, 28 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0d}, 29 {BRIDGE, M5602_XB_SENSOR_CTRL, 0x00}, 30 {BRIDGE, M5602_XB_GPIO_DIR, 0x03}, 31 {BRIDGE, M5602_XB_GPIO_DIR, 0x03}, 32 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0}, [all …]
|
| H A D | m5602_s5k4aa.c | 20 {BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02, 0x00}, 21 {BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0, 0x00}, 22 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00}, 23 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, 24 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00}, 25 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0d, 0x00}, 26 {BRIDGE, M5602_XB_SENSOR_CTRL, 0x00, 0x00}, 28 {BRIDGE, M5602_XB_GPIO_DIR, 0x1d, 0x00}, 29 {BRIDGE, M5602_XB_GPIO_DAT, 0x08, 0x00}, 30 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0xb0, 0x00}, [all …]
|
| H A D | m5602_s5k83a.c | 41 {BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02, 0x00}, 42 {BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0, 0x00}, 43 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00}, 44 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, 45 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00}, 46 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0d, 0x00}, 47 {BRIDGE, M5602_XB_SENSOR_CTRL, 0x00, 0x00}, 49 {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00}, 50 {BRIDGE, M5602_XB_GPIO_DIR, 0x1d, 0x00}, 51 {BRIDGE, M5602_XB_GPIO_DAT, 0x08, 0x00}, [all …]
|
| /linux/tools/testing/selftests/net/ |
| H A D | bridge_vlan_dump.sh | 4 # Test bridge VLAN range grouping. VLANs are collapsed into a range entry in 23 ip -n "$NS" link add name br0 type bridge vlan_filtering 1 \ 37 bridge -n "$NS" vlan add vid 10 dev dummy0 38 defer bridge -n "$NS" vlan del vid 10 dev dummy0 40 bridge -n "$NS" vlan add vid 11 dev dummy0 41 defer bridge -n "$NS" vlan del vid 11 dev dummy0 44 bridge -n "$NS" vlan set vid 10 dev dummy0 neigh_suppress on 47 bridge -n "$NS" vlan set vid 11 dev dummy0 neigh_suppress off 51 bridge -n "$NS" -d vlan show dev dummy0 | grep -q "10-11" 54 bridge -n "$NS" -d vlan show dev dummy0 | grep -Eq "^\S+\s+10$|^\s+10$" [all …]
|
| /linux/drivers/pci/ |
| H A D | pci-bridge-emul.c | 8 * PCI bridge when the HW doesn't provide such a root port PCI 9 * bridge. 11 * It emulates a PCI bridge by providing a fake PCI configuration 21 #include "pci-bridge-emul.h" 71 * bridge that is not capable of a burst transfer of more than 77 * BIST register: implemented as read-only, as "A bridge that 152 * are RO, and bridge control (31:16) are a mix of RW, RO, 318 pci_bridge_emul_read_ssid(struct pci_bridge_emul *bridge, int reg, u32 *value) in pci_bridge_emul_read_ssid() argument 323 ((bridge->pcie_start > bridge->ssid_start) ? (bridge->pcie_start << 8) : 0); in pci_bridge_emul_read_ssid() 327 *value = bridge->subsystem_vendor_id | in pci_bridge_emul_read_ssid() [all …]
|
| /linux/drivers/staging/vme_user/ |
| H A D | vme_fake.c | 3 * Fake VME bridge support. 5 * This drive provides a fake VME bridge chip, this enables debugging of the 96 struct fake_driver *bridge; in fake_VIRQ_tasklet() local 99 bridge = fake_bridge->driver_priv; in fake_VIRQ_tasklet() 101 vme_irq_handler(fake_bridge, bridge->int_level, bridge->int_statid); in fake_VIRQ_tasklet() 130 struct fake_driver *bridge; in fake_irq_generate() local 132 bridge = fake_bridge->driver_priv; in fake_irq_generate() 134 mutex_lock(&bridge->vme_int); in fake_irq_generate() 136 bridge->int_level = level; in fake_irq_generate() 138 bridge->int_statid = statid; in fake_irq_generate() [all …]
|
| H A D | vme_tsi148.c | 3 * Support for the Tundra TSI148 VME-PCI Bridge Chip 74 static u32 tsi148_DMA_irqhandler(struct tsi148_driver *bridge, in tsi148_DMA_irqhandler() argument 80 wake_up(&bridge->dma_queue[0]); in tsi148_DMA_irqhandler() 84 wake_up(&bridge->dma_queue[1]); in tsi148_DMA_irqhandler() 94 static u32 tsi148_LM_irqhandler(struct tsi148_driver *bridge, u32 stat) in tsi148_LM_irqhandler() argument 102 bridge->lm_callback[i](bridge->lm_data[i]); in tsi148_LM_irqhandler() 120 struct tsi148_driver *bridge; in tsi148_MB_irqhandler() local 122 bridge = tsi148_bridge->driver_priv; in tsi148_MB_irqhandler() 126 val = ioread32be(bridge->base + TSI148_GCSR_MBOX[i]); in tsi148_MB_irqhandler() 141 struct tsi148_driver *bridge; in tsi148_PERR_irqhandler() local [all …]
|
| /linux/tools/testing/selftests/drivers/net/mlxsw/ |
| H A D | vxlan.sh | 89 ip link add dev br0 type bridge mcast_snooping 0 106 ip link add dev br0 type bridge mcast_snooping 0 vlan_filtering 1 116 log_test "vxlan device with a vlan-aware bridge" 123 ip link add dev br0 type bridge 133 log_test "vxlan device with a multicast enabled bridge" 140 ip link add dev br0 type bridge mcast_snooping 0 160 ip link add dev br0 type bridge mcast_snooping 0 177 ip link add dev br0 type bridge mcast_snooping 0 194 ip link add dev br0 type bridge mcast_snooping 0 213 ip link add dev br0 type bridge mcast_snooping 0 [all …]
|
| H A D | q_in_q_veto.sh | 49 ip link add dev br0 type bridge vlan_filtering 1 \ 58 check_fail $? "$netdev_proto vlan upper creation on top of an $bridge_proto bridge not rejected" 63 …check_err $? "$netdev_proto vlan upper creation on top of an $bridge_proto bridge rejected without… 65 log_test "create $netdev_proto vlan upper on top $bridge_proto bridge" 90 ip link add dev br0 type bridge vlan_filtering 1 \ 99 check_fail $? "802.1ad vlan upper creation on top of a bridge port not rejected" 104 check_err $? "802.1ad vlan upper creation on top of a bridge port rejected without extack" 106 log_test "create 802.1ad vlan upper on top of a bridge port" 158 ip link add dev br0 type bridge vlan_filtering 1 \ 166 check_fail $? "vlan upper creation on top of front panel enslaved to 802.1ad bridge not rejected" [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
| H A D | bridge.c | 10 #include "bridge.h" 84 esw_warn(dev, "Failed to create bridge FDB Table (err=%pe)\n", in mlx5_esw_bridge_table_create() 125 "Failed to create VLAN(proto=%x) flow group for bridge ingress table (err=%pe)\n", in mlx5_esw_bridge_ingress_vlan_proto_fg_create() 184 "Failed to create bridge ingress table VLAN filter flow group (err=%pe)\n", in mlx5_esw_bridge_ingress_vlan_proto_filter_fg_create() 241 "Failed to create MAC flow group for bridge ingress table (err=%pe)\n", in mlx5_esw_bridge_ingress_mac_fg_create() 278 "Failed to create VLAN flow group for bridge egress table (err=%pe)\n", in mlx5_esw_bridge_egress_vlan_proto_fg_create() 328 "Failed to create bridge egress table MAC flow group (err=%pe)\n", in mlx5_esw_bridge_egress_mac_fg_create() 358 "Failed to create bridge egress table miss flow group (err=%pe)\n", in mlx5_esw_bridge_egress_miss_fg_create() 469 struct mlx5_esw_bridge *bridge) in mlx5_esw_bridge_egress_table_init() argument 538 bridge->egress_ft = egress_ft; in mlx5_esw_bridge_egress_table_init() [all …]
|
| H A D | bridge_mcast.c | 5 #include "bridge.h" 17 int mlx5_esw_bridge_mdb_init(struct mlx5_esw_bridge *bridge) in mlx5_esw_bridge_mdb_init() argument 19 INIT_LIST_HEAD(&bridge->mdb_list); in mlx5_esw_bridge_mdb_init() 20 return rhashtable_init(&bridge->mdb_ht, &mdb_ht_params); in mlx5_esw_bridge_mdb_init() 23 void mlx5_esw_bridge_mdb_cleanup(struct mlx5_esw_bridge *bridge) in mlx5_esw_bridge_mdb_cleanup() argument 25 rhashtable_destroy(&bridge->mdb_ht); in mlx5_esw_bridge_mdb_cleanup() 54 struct mlx5_esw_bridge *bridge) in mlx5_esw_bridge_mdb_flow_create() argument 94 if (bridge->vlan_proto == ETH_P_8021Q) { in mlx5_esw_bridge_mdb_flow_create() 99 } else if (bridge->vlan_proto == ETH_P_8021AD) { in mlx5_esw_bridge_mdb_flow_create() 111 handle = mlx5_add_flow_rules(bridge->egress_ft, rule_spec, &flow_act, dests, num_dests); in mlx5_esw_bridge_mdb_flow_create() [all …]
|
| /linux/drivers/net/ethernet/intel/ice/ |
| H A D | ice_eswitch_br.c | 244 dev_err(dev, "Failed to create eswitch bridge %sgress forward rule, err: %d\n", in ice_eswitch_br_flow_create() 253 dev_err(dev, "Failed to create eswitch bridge %sgress guard rule, err: %d\n", in ice_eswitch_br_flow_create() 273 ice_eswitch_br_fdb_find(struct ice_esw_br *bridge, const unsigned char *mac, in ice_eswitch_br_fdb_find() argument 281 return rhashtable_lookup_fast(&bridge->fdb_ht, &data, in ice_eswitch_br_fdb_find() 305 ice_esw_br_port_vlan_lookup(struct ice_esw_br *bridge, u16 vsi_idx, u16 vid) in ice_esw_br_port_vlan_lookup() argument 307 struct ice_pf *pf = bridge->br_offloads->pf; in ice_esw_br_port_vlan_lookup() 312 port = xa_load(&bridge->ports, vsi_idx); in ice_esw_br_port_vlan_lookup() 314 dev_info(dev, "Bridge port lookup failed (vsi=%u)\n", vsi_idx); in ice_esw_br_port_vlan_lookup() 320 dev_info(dev, "Bridge port vlan metadata lookup failed (vsi=%u)\n", in ice_esw_br_port_vlan_lookup() 329 ice_eswitch_br_fdb_entry_delete(struct ice_esw_br *bridge, in ice_eswitch_br_fdb_entry_delete() argument [all …]
|
| /linux/drivers/pci/hotplug/ |
| H A D | acpiphp_glue.c | 22 * when the bridge is scanned and it loses a refcount when the bridge 24 * - When a P2P bridge is present, we elevate the refcount on the subordinate 105 WARN_ON(context->bridge); in acpiphp_put_context() 110 static inline void get_bridge(struct acpiphp_bridge *bridge) in get_bridge() argument 112 kref_get(&bridge->ref); in get_bridge() 115 static inline void put_bridge(struct acpiphp_bridge *bridge) in put_bridge() argument 117 kref_put(&bridge->ref, free_bridge); in put_bridge() 152 struct acpiphp_bridge *bridge; in free_bridge() local 158 bridge = container_of(kref, struct acpiphp_bridge, ref); in free_bridge() 160 list_for_each_entry_safe(slot, next, &bridge->slots, node) { in free_bridge() [all …]
|
| /linux/Documentation/networking/dsa/ |
| H A D | configuration.rst | 21 *bridge* 22 Every switch port is part of one configurable Ethernet bridge 26 Ethernet bridge. 75 *bridge* 108 *bridge* 120 # create bridge 121 ip link add name br0 type bridge 123 # add ports to bridge 128 # configure the bridge 131 # bring up the bridge [all …]
|
| /linux/drivers/fpga/tests/ |
| H A D | fpga-bridge-test.c | 3 * KUnit test for the FPGA Bridge 12 #include <linux/fpga/fpga-bridge.h> 21 struct fpga_bridge *bridge; member 33 static int op_enable_set(struct fpga_bridge *bridge, bool enable) in op_enable_set() argument 35 struct bridge_stats *stats = bridge->priv; in op_enable_set() 43 * Fake FPGA bridge that implements only the enable_set op to track 51 * register_test_bridge() - Register a fake FPGA bridge for testing. 55 * Return: Context of the newly registered FPGA bridge. 68 ctx->bridge = fpga_bridge_register(ctx->dev, "Fake FPGA bridge", &fake_bridge_ops, in register_test_bridge() 70 KUNIT_ASSERT_FALSE(test, IS_ERR_OR_NULL(ctx->bridge)); in register_test_bridge() [all …]
|