• Home
  • Raw
  • Download

Lines Matching refs:pqi_sas_port

20 static struct pqi_sas_phy *pqi_alloc_sas_phy(struct pqi_sas_port *pqi_sas_port)  in pqi_alloc_sas_phy()  argument
29 phy = sas_phy_alloc(pqi_sas_port->parent_node->parent_dev, in pqi_alloc_sas_phy()
30 pqi_sas_port->next_phy_index); in pqi_alloc_sas_phy()
36 pqi_sas_port->next_phy_index++; in pqi_alloc_sas_phy()
38 pqi_sas_phy->parent_port = pqi_sas_port; in pqi_alloc_sas_phy()
57 struct pqi_sas_port *pqi_sas_port; in pqi_sas_port_add_phy() local
61 pqi_sas_port = pqi_sas_phy->parent_port; in pqi_sas_port_add_phy()
66 identify->sas_address = pqi_sas_port->sas_address; in pqi_sas_port_add_phy()
80 sas_port_add_phy(pqi_sas_port->port, pqi_sas_phy->phy); in pqi_sas_port_add_phy()
82 &pqi_sas_port->phy_list_head); in pqi_sas_port_add_phy()
88 static int pqi_sas_port_add_rphy(struct pqi_sas_port *pqi_sas_port, in pqi_sas_port_add_rphy() argument
94 identify->sas_address = pqi_sas_port->sas_address; in pqi_sas_port_add_rphy()
99 if (pqi_sas_port->device) { in pqi_sas_port_add_rphy()
100 identify->phy_identifier = pqi_sas_port->device->phy_id; in pqi_sas_port_add_rphy()
101 switch (pqi_sas_port->device->device_type) { in pqi_sas_port_add_rphy()
119 static struct sas_rphy *pqi_sas_rphy_alloc(struct pqi_sas_port *pqi_sas_port) in pqi_sas_rphy_alloc() argument
121 if (pqi_sas_port->device && pqi_sas_port->device->is_expander_smp_device) in pqi_sas_rphy_alloc()
122 return sas_expander_alloc(pqi_sas_port->port, in pqi_sas_rphy_alloc()
125 return sas_end_device_alloc(pqi_sas_port->port); in pqi_sas_rphy_alloc()
128 static struct pqi_sas_port *pqi_alloc_sas_port( in pqi_alloc_sas_port()
133 struct pqi_sas_port *pqi_sas_port; in pqi_alloc_sas_port() local
136 pqi_sas_port = kzalloc(sizeof(*pqi_sas_port), GFP_KERNEL); in pqi_alloc_sas_port()
137 if (!pqi_sas_port) in pqi_alloc_sas_port()
140 INIT_LIST_HEAD(&pqi_sas_port->phy_list_head); in pqi_alloc_sas_port()
141 pqi_sas_port->parent_node = pqi_sas_node; in pqi_alloc_sas_port()
151 pqi_sas_port->port = port; in pqi_alloc_sas_port()
152 pqi_sas_port->sas_address = sas_address; in pqi_alloc_sas_port()
153 pqi_sas_port->device = device; in pqi_alloc_sas_port()
154 list_add_tail(&pqi_sas_port->port_list_entry, in pqi_alloc_sas_port()
157 return pqi_sas_port; in pqi_alloc_sas_port()
162 kfree(pqi_sas_port); in pqi_alloc_sas_port()
167 static void pqi_free_sas_port(struct pqi_sas_port *pqi_sas_port) in pqi_free_sas_port() argument
173 &pqi_sas_port->phy_list_head, phy_list_entry) in pqi_free_sas_port()
176 sas_port_delete(pqi_sas_port->port); in pqi_free_sas_port()
177 list_del(&pqi_sas_port->port_list_entry); in pqi_free_sas_port()
178 kfree(pqi_sas_port); in pqi_free_sas_port()
196 struct pqi_sas_port *pqi_sas_port; in pqi_free_sas_node() local
197 struct pqi_sas_port *next; in pqi_free_sas_node()
202 list_for_each_entry_safe(pqi_sas_port, next, in pqi_free_sas_node()
204 pqi_free_sas_port(pqi_sas_port); in pqi_free_sas_node()
230 struct pqi_sas_port *pqi_sas_port; in pqi_add_sas_host() local
239 pqi_sas_port = pqi_alloc_sas_port(pqi_sas_node, in pqi_add_sas_host()
241 if (!pqi_sas_port) { in pqi_add_sas_host()
246 pqi_sas_phy = pqi_alloc_sas_phy(pqi_sas_port); in pqi_add_sas_host()
263 pqi_free_sas_port(pqi_sas_port); in pqi_add_sas_host()
279 struct pqi_sas_port *pqi_sas_port; in pqi_add_sas_device() local
282 pqi_sas_port = pqi_alloc_sas_port(pqi_sas_node, in pqi_add_sas_device()
284 if (!pqi_sas_port) in pqi_add_sas_device()
287 rphy = pqi_sas_rphy_alloc(pqi_sas_port); in pqi_add_sas_device()
293 pqi_sas_port->rphy = rphy; in pqi_add_sas_device()
294 device->sas_port = pqi_sas_port; in pqi_add_sas_device()
296 rc = pqi_sas_port_add_rphy(pqi_sas_port, rphy); in pqi_add_sas_device()
303 pqi_free_sas_port(pqi_sas_port); in pqi_add_sas_device()