Lines Matching refs:pb
41 struct mdio_mux_parent_bus *pb = cb->parent;
44 mutex_lock_nested(&pb->mii_bus->mdio_lock, MDIO_MUTEX_MUX);
45 r = pb->switch_fn(pb->current_child, cb->bus_number, pb->switch_data);
49 pb->current_child = cb->bus_number;
51 r = pb->mii_bus->read(pb->mii_bus, phy_id, regnum);
53 mutex_unlock(&pb->mii_bus->mdio_lock);
65 struct mdio_mux_parent_bus *pb = cb->parent;
69 mutex_lock_nested(&pb->mii_bus->mdio_lock, MDIO_MUTEX_MUX);
70 r = pb->switch_fn(pb->current_child, cb->bus_number, pb->switch_data);
74 pb->current_child = cb->bus_number;
76 r = pb->mii_bus->write(pb->mii_bus, phy_id, regnum, val);
78 mutex_unlock(&pb->mii_bus->mdio_lock);
85 static void mdio_mux_uninit_children(struct mdio_mux_parent_bus *pb)
87 struct mdio_mux_child_bus *cb = pb->children;
107 struct mdio_mux_parent_bus *pb;
131 pb = devm_kzalloc(dev, sizeof(*pb), GFP_KERNEL);
132 if (!pb) {
137 pb->switch_data = data;
138 pb->switch_fn = switch_fn;
139 pb->current_child = -1;
140 pb->parent_id = parent_count++;
141 pb->mii_bus = parent_bus;
161 cb->parent = pb;
172 pb->parent_id, v);
188 cb->next = pb->children;
189 pb->children = cb;
192 if (pb->children) {
193 *mux_handle = pb;
198 devm_kfree(dev, pb);
201 mdio_mux_uninit_children(pb);
213 struct mdio_mux_parent_bus *pb = mux_handle;
215 mdio_mux_uninit_children(pb);
216 put_device(&pb->mii_bus->dev);