Lines Matching refs:rpc

122 static void aer_enable_rootport(struct aer_rpc *rpc)  in aer_enable_rootport()  argument
124 struct pci_dev *pdev = rpc->rpd->port; in aer_enable_rootport()
164 static void aer_disable_rootport(struct aer_rpc *rpc) in aer_disable_rootport() argument
166 struct pci_dev *pdev = rpc->rpd->port; in aer_disable_rootport()
198 struct aer_rpc *rpc = get_service_data(pdev); in aer_irq() local
208 spin_lock_irqsave(&rpc->e_lock, flags); in aer_irq()
213 spin_unlock_irqrestore(&rpc->e_lock, flags); in aer_irq()
222 next_prod_idx = rpc->prod_idx + 1; in aer_irq()
225 if (next_prod_idx == rpc->cons_idx) { in aer_irq()
230 spin_unlock_irqrestore(&rpc->e_lock, flags); in aer_irq()
233 rpc->e_sources[rpc->prod_idx].status = status; in aer_irq()
234 rpc->e_sources[rpc->prod_idx].id = id; in aer_irq()
235 rpc->prod_idx = next_prod_idx; in aer_irq()
236 spin_unlock_irqrestore(&rpc->e_lock, flags); in aer_irq()
239 schedule_work(&rpc->dpc_handler); in aer_irq()
253 struct aer_rpc *rpc; in aer_alloc_rpc() local
255 rpc = kzalloc(sizeof(struct aer_rpc), GFP_KERNEL); in aer_alloc_rpc()
256 if (!rpc) in aer_alloc_rpc()
260 spin_lock_init(&rpc->e_lock); in aer_alloc_rpc()
262 rpc->rpd = dev; in aer_alloc_rpc()
263 INIT_WORK(&rpc->dpc_handler, aer_isr); in aer_alloc_rpc()
264 mutex_init(&rpc->rpc_mutex); in aer_alloc_rpc()
267 set_service_data(dev, rpc); in aer_alloc_rpc()
269 return rpc; in aer_alloc_rpc()
280 struct aer_rpc *rpc = get_service_data(dev); in aer_remove() local
282 if (rpc) { in aer_remove()
284 if (rpc->isr) in aer_remove()
287 flush_work(&rpc->dpc_handler); in aer_remove()
288 aer_disable_rootport(rpc); in aer_remove()
289 kfree(rpc); in aer_remove()
304 struct aer_rpc *rpc; in aer_probe() local
313 rpc = aer_alloc_rpc(dev); in aer_probe()
314 if (!rpc) { in aer_probe()
328 rpc->isr = 1; in aer_probe()
330 aer_enable_rootport(rpc); in aer_probe()