Symbol: pdsc
arch/powerpc/platforms/pseries/papr_scm.c
950
const struct pdsm_cmd_desc *pdsc;
arch/powerpc/platforms/pseries/papr_scm.c
954
pdsc = pdsm_cmd_desc(pdsm);
arch/powerpc/platforms/pseries/papr_scm.c
965
if (pdsc->size_in &&
arch/powerpc/platforms/pseries/papr_scm.c
966
pkg->nd_size_in != (pdsc->size_in + ND_PDSM_HDR_SIZE)) {
arch/powerpc/platforms/pseries/papr_scm.c
973
if (pdsc->size_out &&
arch/powerpc/platforms/pseries/papr_scm.c
974
pkg->nd_size_out != (pdsc->size_out + ND_PDSM_HDR_SIZE)) {
arch/powerpc/platforms/pseries/papr_scm.c
981
if (pdsc->service) {
arch/powerpc/platforms/pseries/papr_scm.c
984
rc = pdsc->service(p, &pdsm_pkg->payload);
drivers/net/ethernet/amd/pds_core/adminq.c
107
spin_lock_irqsave(&pdsc->adminq_lock, irqflags);
drivers/net/ethernet/amd/pds_core/adminq.c
11
struct pdsc *pdsc = qcq->pdsc;
drivers/net/ethernet/amd/pds_core/adminq.c
129
spin_unlock_irqrestore(&pdsc->adminq_lock, irqflags);
drivers/net/ethernet/amd/pds_core/adminq.c
135
pds_core_intr_credits(&pdsc->intr_ctrl[qcq->intx],
drivers/net/ethernet/amd/pds_core/adminq.c
138
refcount_dec(&pdsc->adminq_refcnt);
drivers/net/ethernet/amd/pds_core/adminq.c
150
struct pdsc *pdsc = data;
drivers/net/ethernet/amd/pds_core/adminq.c
154
if (!pdsc_adminq_inc_if_up(pdsc)) {
drivers/net/ethernet/amd/pds_core/adminq.c
155
dev_err(pdsc->dev, "%s: called while adminq is unavailable\n",
drivers/net/ethernet/amd/pds_core/adminq.c
160
qcq = &pdsc->adminqcq;
drivers/net/ethernet/amd/pds_core/adminq.c
161
queue_work(pdsc->wq, &qcq->work);
drivers/net/ethernet/amd/pds_core/adminq.c
162
refcount_dec(&pdsc->adminq_refcnt);
drivers/net/ethernet/amd/pds_core/adminq.c
167
static int __pdsc_adminq_post(struct pdsc *pdsc,
drivers/net/ethernet/amd/pds_core/adminq.c
179
spin_lock_irqsave(&pdsc->adminq_lock, irqflags);
drivers/net/ethernet/amd/pds_core/adminq.c
193
if (!pdsc_is_fw_running(pdsc)) {
drivers/net/ethernet/amd/pds_core/adminq.c
194
if (pdsc->info_regs) {
drivers/net/ethernet/amd/pds_core/adminq.c
196
ioread8(&pdsc->info_regs->fw_status);
drivers/net/ethernet/amd/pds_core/adminq.c
198
dev_info(pdsc->dev, "%s: post failed - fw not running %#02x:\n",
drivers/net/ethernet/amd/pds_core/adminq.c
20
while (eid > pdsc->last_eid) {
drivers/net/ethernet/amd/pds_core/adminq.c
201
dev_info(pdsc->dev, "%s: post failed - BARs not setup\n",
drivers/net/ethernet/amd/pds_core/adminq.c
216
dev_dbg(pdsc->dev, "head_idx %d tail_idx %d\n",
drivers/net/ethernet/amd/pds_core/adminq.c
218
dev_dbg(pdsc->dev, "post admin queue command:\n");
drivers/net/ethernet/amd/pds_core/adminq.c
224
pds_core_dbell_ring(pdsc->kern_dbpage,
drivers/net/ethernet/amd/pds_core/adminq.c
229
spin_unlock_irqrestore(&pdsc->adminq_lock, irqflags);
drivers/net/ethernet/amd/pds_core/adminq.c
233
int pdsc_adminq_post(struct pdsc *pdsc,
drivers/net/ethernet/amd/pds_core/adminq.c
248
if (!pdsc_adminq_inc_if_up(pdsc)) {
drivers/net/ethernet/amd/pds_core/adminq.c
249
dev_dbg(pdsc->dev, "%s: preventing adminq cmd %u\n",
drivers/net/ethernet/amd/pds_core/adminq.c
254
index = __pdsc_adminq_post(pdsc, &pdsc->adminqcq, cmd, comp);
drivers/net/ethernet/amd/pds_core/adminq.c
260
wc = &pdsc->adminqcq.q.info[index].completion;
drivers/net/ethernet/amd/pds_core/adminq.c
262
time_limit = time_start + HZ * pdsc->devcmd_timeout;
drivers/net/ethernet/amd/pds_core/adminq.c
270
if (!pdsc_is_fw_running(pdsc)) {
drivers/net/ethernet/amd/pds_core/adminq.c
271
if (pdsc->info_regs) {
drivers/net/ethernet/amd/pds_core/adminq.c
273
ioread8(&pdsc->info_regs->fw_status);
drivers/net/ethernet/amd/pds_core/adminq.c
275
dev_dbg(pdsc->dev, "%s: post wait failed - fw not running %#02x:\n",
drivers/net/ethernet/amd/pds_core/adminq.c
278
dev_dbg(pdsc->dev, "%s: post wait failed - BARs not setup\n",
drivers/net/ethernet/amd/pds_core/adminq.c
292
dev_dbg(pdsc->dev, "%s: elapsed %d msecs\n",
drivers/net/ethernet/amd/pds_core/adminq.c
301
dev_dbg(pdsc->dev, "read admin queue completion idx %d:\n", index);
drivers/net/ethernet/amd/pds_core/adminq.c
31
dev_info(pdsc->dev, "NotifyQ LINK_CHANGE ecode %d eid %lld\n",
drivers/net/ethernet/amd/pds_core/adminq.c
310
dev_dbg(pdsc->dev, "%s: opcode %d status %d err %pe\n",
drivers/net/ethernet/amd/pds_core/adminq.c
313
queue_work(pdsc->wq, &pdsc->health_work);
drivers/net/ethernet/amd/pds_core/adminq.c
316
refcount_dec(&pdsc->adminq_refcnt);
drivers/net/ethernet/amd/pds_core/adminq.c
37
dev_info(pdsc->dev, "NotifyQ RESET ecode %d eid %lld\n",
drivers/net/ethernet/amd/pds_core/adminq.c
43
dev_info(pdsc->dev, "NotifyQ XCVR ecode %d eid %lld\n",
drivers/net/ethernet/amd/pds_core/adminq.c
48
dev_info(pdsc->dev, "NotifyQ ecode %d eid %lld\n",
drivers/net/ethernet/amd/pds_core/adminq.c
53
pdsc->last_eid = eid;
drivers/net/ethernet/amd/pds_core/adminq.c
67
static bool pdsc_adminq_inc_if_up(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/adminq.c
69
if (pdsc->state & BIT_ULL(PDSC_S_STOPPING_DRIVER) ||
drivers/net/ethernet/amd/pds_core/adminq.c
70
pdsc->state & BIT_ULL(PDSC_S_FW_DEAD))
drivers/net/ethernet/amd/pds_core/adminq.c
73
return refcount_inc_not_zero(&pdsc->adminq_refcnt);
drivers/net/ethernet/amd/pds_core/adminq.c
80
struct pdsc *pdsc = qcq->pdsc;
drivers/net/ethernet/amd/pds_core/adminq.c
88
if (!pdsc_adminq_inc_if_up(pdsc)) {
drivers/net/ethernet/amd/pds_core/adminq.c
89
dev_err(pdsc->dev, "%s: called while adminq is unavailable\n",
drivers/net/ethernet/amd/pds_core/adminq.c
95
nq_work = pdsc_process_notifyq(&pdsc->notifyqcq);
drivers/net/ethernet/amd/pds_core/auxbus.c
100
struct pdsc *pf;
drivers/net/ethernet/amd/pds_core/auxbus.c
134
static struct pds_auxiliary_dev *pdsc_auxbus_dev_register(struct pdsc *cf,
drivers/net/ethernet/amd/pds_core/auxbus.c
135
struct pdsc *pf,
drivers/net/ethernet/amd/pds_core/auxbus.c
17
int pds_client_register(struct pdsc *pf, char *devname)
drivers/net/ethernet/amd/pds_core/auxbus.c
175
void pdsc_auxbus_dev_del(struct pdsc *cf, struct pdsc *pf,
drivers/net/ethernet/amd/pds_core/auxbus.c
198
int pdsc_auxbus_dev_add(struct pdsc *cf, struct pdsc *pf,
drivers/net/ethernet/amd/pds_core/auxbus.c
57
int pds_client_unregister(struct pdsc *pf, u16 client_id)
drivers/net/ethernet/amd/pds_core/core.c
102
pdsc_intr_free(pdsc, index);
drivers/net/ethernet/amd/pds_core/core.c
106
static void pdsc_qcq_intr_free(struct pdsc *pdsc, struct pdsc_qcq *qcq)
drivers/net/ethernet/amd/pds_core/core.c
112
pdsc_intr_free(pdsc, qcq->intx);
drivers/net/ethernet/amd/pds_core/core.c
115
static int pdsc_qcq_intr_alloc(struct pdsc *pdsc, struct pdsc_qcq *qcq)
drivers/net/ethernet/amd/pds_core/core.c
126
PDS_CORE_DRV_NAME, pdsc->pdev->bus->number, qcq->q.name);
drivers/net/ethernet/amd/pds_core/core.c
127
index = pdsc_intr_alloc(pdsc, name, pdsc_adminq_isr, pdsc);
drivers/net/ethernet/amd/pds_core/core.c
131
qcq->cq.bound_intr = &pdsc->intr_info[index];
drivers/net/ethernet/amd/pds_core/core.c
136
void pdsc_qcq_free(struct pdsc *pdsc, struct pdsc_qcq *qcq)
drivers/net/ethernet/amd/pds_core/core.c
138
struct device *dev = pdsc->dev;
drivers/net/ethernet/amd/pds_core/core.c
140
if (!(qcq && qcq->pdsc))
drivers/net/ethernet/amd/pds_core/core.c
145
pdsc_qcq_intr_free(pdsc, qcq);
drivers/net/ethernet/amd/pds_core/core.c
193
int pdsc_qcq_alloc(struct pdsc *pdsc, unsigned int type, unsigned int index,
drivers/net/ethernet/amd/pds_core/core.c
198
struct device *dev = pdsc->dev;
drivers/net/ethernet/amd/pds_core/core.c
210
qcq->pdsc = pdsc;
drivers/net/ethernet/amd/pds_core/core.c
223
err = pdsc_qcq_intr_alloc(pdsc, qcq);
drivers/net/ethernet/amd/pds_core/core.c
28
void pdsc_intr_free(struct pdsc *pdsc, int index)
drivers/net/ethernet/amd/pds_core/core.c
292
pdsc_debugfs_add_qcq(pdsc, qcq);
drivers/net/ethernet/amd/pds_core/core.c
301
pdsc_qcq_intr_free(pdsc, qcq);
drivers/net/ethernet/amd/pds_core/core.c
310
static void pdsc_core_uninit(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/core.c
315
pdsc_qcq_free(pdsc, &pdsc->adminqcq);
drivers/net/ethernet/amd/pds_core/core.c
316
pdsc_qcq_free(pdsc, &pdsc->notifyqcq);
drivers/net/ethernet/amd/pds_core/core.c
318
if (pdsc->kern_dbpage) {
drivers/net/ethernet/amd/pds_core/core.c
319
iounmap(pdsc->kern_dbpage);
drivers/net/ethernet/amd/pds_core/core.c
32
if (index >= pdsc->nintrs || index < 0) {
drivers/net/ethernet/amd/pds_core/core.c
320
pdsc->kern_dbpage = NULL;
drivers/net/ethernet/amd/pds_core/core.c
324
static int pdsc_core_init(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/core.c
339
err = pdsc_qcq_alloc(pdsc, PDS_CORE_QTYPE_ADMINQ, 0, "adminq",
drivers/net/ethernet/amd/pds_core/core.c
344
0, &pdsc->adminqcq);
drivers/net/ethernet/amd/pds_core/core.c
348
err = pdsc_qcq_alloc(pdsc, PDS_CORE_QTYPE_NOTIFYQ, 0, "notifyq",
drivers/net/ethernet/amd/pds_core/core.c
353
0, &pdsc->notifyqcq);
drivers/net/ethernet/amd/pds_core/core.c
357
cidi.adminq_q_base = cpu_to_le64(pdsc->adminqcq.q_base_pa);
drivers/net/ethernet/amd/pds_core/core.c
358
cidi.adminq_cq_base = cpu_to_le64(pdsc->adminqcq.cq_base_pa);
drivers/net/ethernet/amd/pds_core/core.c
359
cidi.notifyq_cq_base = cpu_to_le64(pdsc->notifyqcq.cq.base_pa);
drivers/net/ethernet/amd/pds_core/core.c
361
cidi.intr_index = cpu_to_le16(pdsc->adminqcq.intx);
drivers/net/ethernet/amd/pds_core/core.c
362
cidi.adminq_ring_size = ilog2(pdsc->adminqcq.q.num_descs);
drivers/net/ethernet/amd/pds_core/core.c
363
cidi.notifyq_ring_size = ilog2(pdsc->notifyqcq.q.num_descs);
drivers/net/ethernet/amd/pds_core/core.c
365
mutex_lock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/core.c
367
sz = min_t(size_t, sizeof(cidi), sizeof(pdsc->cmd_regs->data));
drivers/net/ethernet/amd/pds_core/core.c
368
memcpy_toio(&pdsc->cmd_regs->data, &cidi, sz);
drivers/net/ethernet/amd/pds_core/core.c
37
intr_info = &pdsc->intr_info[index];
drivers/net/ethernet/amd/pds_core/core.c
370
err = pdsc_devcmd_locked(pdsc, &cmd, &comp, pdsc->devcmd_timeout);
drivers/net/ethernet/amd/pds_core/core.c
372
sz = min_t(size_t, sizeof(cido), sizeof(pdsc->cmd_regs->data));
drivers/net/ethernet/amd/pds_core/core.c
373
memcpy_fromio(&cido, &pdsc->cmd_regs->data, sz);
drivers/net/ethernet/amd/pds_core/core.c
376
mutex_unlock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/core.c
378
dev_err(pdsc->dev, "Device init command failed: %pe\n",
drivers/net/ethernet/amd/pds_core/core.c
383
pdsc->hw_index = le32_to_cpu(cido.core_hw_index);
drivers/net/ethernet/amd/pds_core/core.c
385
dbid_count = le32_to_cpu(pdsc->dev_ident.ndbpgs_per_lif);
drivers/net/ethernet/amd/pds_core/core.c
386
dbpage_num = pdsc->hw_index * dbid_count;
drivers/net/ethernet/amd/pds_core/core.c
387
pdsc->kern_dbpage = pdsc_map_dbpage(pdsc, dbpage_num);
drivers/net/ethernet/amd/pds_core/core.c
388
if (!pdsc->kern_dbpage) {
drivers/net/ethernet/amd/pds_core/core.c
389
dev_err(pdsc->dev, "Cannot map dbpage, aborting\n");
drivers/net/ethernet/amd/pds_core/core.c
394
pdsc->adminqcq.q.hw_type = cido.adminq_hw_type;
drivers/net/ethernet/amd/pds_core/core.c
395
pdsc->adminqcq.q.hw_index = le32_to_cpu(cido.adminq_hw_index);
drivers/net/ethernet/amd/pds_core/core.c
396
pdsc->adminqcq.q.dbval = PDS_CORE_DBELL_QID(pdsc->adminqcq.q.hw_index);
drivers/net/ethernet/amd/pds_core/core.c
398
pdsc->notifyqcq.q.hw_type = cido.notifyq_hw_type;
drivers/net/ethernet/amd/pds_core/core.c
399
pdsc->notifyqcq.q.hw_index = le32_to_cpu(cido.notifyq_hw_index);
drivers/net/ethernet/amd/pds_core/core.c
40
dev_dbg(pdsc->dev, "%s: idx %d vec %d name %s\n",
drivers/net/ethernet/amd/pds_core/core.c
400
pdsc->notifyqcq.q.dbval = PDS_CORE_DBELL_QID(pdsc->notifyqcq.q.hw_index);
drivers/net/ethernet/amd/pds_core/core.c
402
pdsc->last_eid = 0;
drivers/net/ethernet/amd/pds_core/core.c
407
pdsc_core_uninit(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
422
static int pdsc_viftypes_init(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/core.c
426
pdsc->viftype_status = kzalloc_objs(*pdsc->viftype_status,
drivers/net/ethernet/amd/pds_core/core.c
428
if (!pdsc->viftype_status)
drivers/net/ethernet/amd/pds_core/core.c
43
pds_core_intr_mask(&pdsc->intr_ctrl[index], PDS_CORE_INTR_MASK_SET);
drivers/net/ethernet/amd/pds_core/core.c
438
pdsc->viftype_status[vt] = pdsc_viftype_defaults[vt];
drivers/net/ethernet/amd/pds_core/core.c
44
pds_core_intr_clean(&pdsc->intr_ctrl[index]);
drivers/net/ethernet/amd/pds_core/core.c
441
vt_support = !!le16_to_cpu(pdsc->dev_ident.vif_types[vt]);
drivers/net/ethernet/amd/pds_core/core.c
443
dev_dbg(pdsc->dev, "VIF %s is %ssupported\n",
drivers/net/ethernet/amd/pds_core/core.c
444
pdsc->viftype_status[vt].name,
drivers/net/ethernet/amd/pds_core/core.c
447
pdsc->viftype_status[vt].supported = vt_support;
drivers/net/ethernet/amd/pds_core/core.c
453
int pdsc_setup(struct pdsc *pdsc, bool init)
drivers/net/ethernet/amd/pds_core/core.c
457
pci_set_master(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/core.c
459
err = pdsc_dev_init(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
464
err = pdsc_core_init(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
470
err = pdsc_viftypes_init(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
474
pdsc_debugfs_add_viftype(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
477
refcount_set(&pdsc->adminq_refcnt, 1);
drivers/net/ethernet/amd/pds_core/core.c
478
clear_bit(PDSC_S_FW_DEAD, &pdsc->state);
drivers/net/ethernet/amd/pds_core/core.c
482
pdsc_teardown(pdsc, init);
drivers/net/ethernet/amd/pds_core/core.c
486
void pdsc_teardown(struct pdsc *pdsc, bool removing)
drivers/net/ethernet/amd/pds_core/core.c
488
if (!pdsc->pdev->is_virtfn)
drivers/net/ethernet/amd/pds_core/core.c
489
pdsc_devcmd_reset(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
491
pci_clear_master(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/core.c
493
pdsc_core_uninit(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
496
kfree(pdsc->viftype_status);
drivers/net/ethernet/amd/pds_core/core.c
497
pdsc->viftype_status = NULL;
drivers/net/ethernet/amd/pds_core/core.c
500
pdsc_dev_uninit(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
502
set_bit(PDSC_S_FW_DEAD, &pdsc->state);
drivers/net/ethernet/amd/pds_core/core.c
505
int pdsc_start(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/core.c
507
pds_core_intr_mask(&pdsc->intr_ctrl[pdsc->adminqcq.intx],
drivers/net/ethernet/amd/pds_core/core.c
51
int pdsc_intr_alloc(struct pdsc *pdsc, char *name,
drivers/net/ethernet/amd/pds_core/core.c
513
void pdsc_stop(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/core.c
517
if (!pdsc->intr_info)
drivers/net/ethernet/amd/pds_core/core.c
521
for (i = 0; i < pdsc->nintrs; i++)
drivers/net/ethernet/amd/pds_core/core.c
522
if (pdsc->intr_info[i].vector)
drivers/net/ethernet/amd/pds_core/core.c
523
pds_core_intr_mask(&pdsc->intr_ctrl[i],
drivers/net/ethernet/amd/pds_core/core.c
527
static void pdsc_adminq_wait_and_dec_once_unused(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/core.c
538
while (!refcount_dec_if_one(&pdsc->adminq_refcnt)) {
drivers/net/ethernet/amd/pds_core/core.c
539
dev_dbg_ratelimited(pdsc->dev, "%s: adminq in use\n",
drivers/net/ethernet/amd/pds_core/core.c
546
void pdsc_fw_down(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/core.c
553
if (test_and_set_bit(PDSC_S_FW_DEAD, &pdsc->state)) {
drivers/net/ethernet/amd/pds_core/core.c
554
dev_warn(pdsc->dev, "%s: already happening\n", __func__);
drivers/net/ethernet/amd/pds_core/core.c
558
if (pdsc->pdev->is_virtfn)
drivers/net/ethernet/amd/pds_core/core.c
561
pdsc_adminq_wait_and_dec_once_unused(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
564
if (pdsc->fw_reporter)
drivers/net/ethernet/amd/pds_core/core.c
565
devlink_health_report(pdsc->fw_reporter, "FW down reported", pdsc);
drivers/net/ethernet/amd/pds_core/core.c
568
pdsc_stop(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
569
pdsc_teardown(pdsc, PDSC_TEARDOWN_RECOVERY);
drivers/net/ethernet/amd/pds_core/core.c
572
void pdsc_fw_up(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/core.c
580
if (!test_bit(PDSC_S_FW_DEAD, &pdsc->state)) {
drivers/net/ethernet/amd/pds_core/core.c
581
dev_err(pdsc->dev, "%s: fw not dead\n", __func__);
drivers/net/ethernet/amd/pds_core/core.c
585
if (pdsc->pdev->is_virtfn) {
drivers/net/ethernet/amd/pds_core/core.c
586
clear_bit(PDSC_S_FW_DEAD, &pdsc->state);
drivers/net/ethernet/amd/pds_core/core.c
59
for (index = 0; index < pdsc->nintrs; index++)
drivers/net/ethernet/amd/pds_core/core.c
590
err = pdsc_setup(pdsc, PDSC_SETUP_RECOVERY);
drivers/net/ethernet/amd/pds_core/core.c
594
err = pdsc_start(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
599
pdsc->fw_recoveries++;
drivers/net/ethernet/amd/pds_core/core.c
60
if (!pdsc->intr_info[index].vector)
drivers/net/ethernet/amd/pds_core/core.c
600
if (pdsc->fw_reporter)
drivers/net/ethernet/amd/pds_core/core.c
601
devlink_health_reporter_state_update(pdsc->fw_reporter,
drivers/net/ethernet/amd/pds_core/core.c
608
pdsc_teardown(pdsc, PDSC_TEARDOWN_RECOVERY);
drivers/net/ethernet/amd/pds_core/core.c
613
struct pdsc *pdsc = container_of(work, struct pdsc, pci_reset_work);
drivers/net/ethernet/amd/pds_core/core.c
614
struct pci_dev *pdev = pdsc->pdev;
drivers/net/ethernet/amd/pds_core/core.c
62
if (index >= pdsc->nintrs) {
drivers/net/ethernet/amd/pds_core/core.c
622
static void pdsc_check_pci_health(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/core.c
627
if (!pdsc->info_regs)
drivers/net/ethernet/amd/pds_core/core.c
63
dev_warn(pdsc->dev, "%s: no intr, index=%d nintrs=%d\n",
drivers/net/ethernet/amd/pds_core/core.c
630
fw_status = ioread8(&pdsc->info_regs->fw_status);
drivers/net/ethernet/amd/pds_core/core.c
637
queue_work(pdsc->wq, &pdsc->pci_reset_work);
drivers/net/ethernet/amd/pds_core/core.c
64
__func__, index, pdsc->nintrs);
drivers/net/ethernet/amd/pds_core/core.c
642
struct pdsc *pdsc = container_of(work, struct pdsc, health_work);
drivers/net/ethernet/amd/pds_core/core.c
646
mutex_lock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/core.c
651
if (pdsc->state & mask)
drivers/net/ethernet/amd/pds_core/core.c
654
healthy = pdsc_is_fw_good(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
655
dev_dbg(pdsc->dev, "%s: health %d fw_status %#02x fw_heartbeat %d\n",
drivers/net/ethernet/amd/pds_core/core.c
656
__func__, healthy, pdsc->fw_status, pdsc->last_hb);
drivers/net/ethernet/amd/pds_core/core.c
658
if (test_bit(PDSC_S_FW_DEAD, &pdsc->state)) {
drivers/net/ethernet/amd/pds_core/core.c
660
pdsc_fw_up(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
663
pdsc_fw_down(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
666
pdsc_check_pci_health(pdsc);
drivers/net/ethernet/amd/pds_core/core.c
668
pdsc->fw_generation = pdsc->fw_status & PDS_CORE_FW_STS_F_GENERATION;
drivers/net/ethernet/amd/pds_core/core.c
671
mutex_unlock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/core.c
68
pds_core_intr_clean_flags(&pdsc->intr_ctrl[index],
drivers/net/ethernet/amd/pds_core/core.c
71
intr_info = &pdsc->intr_info[index];
drivers/net/ethernet/amd/pds_core/core.c
78
err = pci_irq_vector(pdsc->pdev, index);
drivers/net/ethernet/amd/pds_core/core.c
80
dev_err(pdsc->dev, "failed to get intr vector index %d: %pe\n",
drivers/net/ethernet/amd/pds_core/core.c
87
pds_core_intr_clean(&pdsc->intr_ctrl[index]);
drivers/net/ethernet/amd/pds_core/core.c
88
pds_core_intr_mask_assert(&pdsc->intr_ctrl[index], 1);
drivers/net/ethernet/amd/pds_core/core.c
89
pds_core_intr_mask(&pdsc->intr_ctrl[index], PDS_CORE_INTR_MASK_SET);
drivers/net/ethernet/amd/pds_core/core.c
94
dev_err(pdsc->dev, "failed to get intr irq vector %d: %pe\n",
drivers/net/ethernet/amd/pds_core/core.h
116
struct pdsc *pdsc;
drivers/net/ethernet/amd/pds_core/core.h
267
void __iomem *pdsc_map_dbpage(struct pdsc *pdsc, int page_num);
drivers/net/ethernet/amd/pds_core/core.h
271
void pdsc_debugfs_add_dev(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
272
void pdsc_debugfs_del_dev(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
273
void pdsc_debugfs_add_ident(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
274
void pdsc_debugfs_add_viftype(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
275
void pdsc_debugfs_add_irqs(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
276
void pdsc_debugfs_add_qcq(struct pdsc *pdsc, struct pdsc_qcq *qcq);
drivers/net/ethernet/amd/pds_core/core.h
280
bool pdsc_is_fw_running(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
281
bool pdsc_is_fw_good(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
282
int pdsc_devcmd(struct pdsc *pdsc, union pds_core_dev_cmd *cmd,
drivers/net/ethernet/amd/pds_core/core.h
284
int pdsc_devcmd_locked(struct pdsc *pdsc, union pds_core_dev_cmd *cmd,
drivers/net/ethernet/amd/pds_core/core.h
286
int pdsc_devcmd_init(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
287
int pdsc_devcmd_reset(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
288
int pdsc_dev_init(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
289
void pdsc_dev_uninit(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
291
int pdsc_intr_alloc(struct pdsc *pdsc, char *name,
drivers/net/ethernet/amd/pds_core/core.h
293
void pdsc_intr_free(struct pdsc *pdsc, int index);
drivers/net/ethernet/amd/pds_core/core.h
294
void pdsc_qcq_free(struct pdsc *pdsc, struct pdsc_qcq *qcq);
drivers/net/ethernet/amd/pds_core/core.h
295
int pdsc_qcq_alloc(struct pdsc *pdsc, unsigned int type, unsigned int index,
drivers/net/ethernet/amd/pds_core/core.h
299
int pdsc_setup(struct pdsc *pdsc, bool init);
drivers/net/ethernet/amd/pds_core/core.h
300
void pdsc_teardown(struct pdsc *pdsc, bool removing);
drivers/net/ethernet/amd/pds_core/core.h
301
int pdsc_start(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
302
void pdsc_stop(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
308
int pdsc_auxbus_dev_add(struct pdsc *cf, struct pdsc *pf,
drivers/net/ethernet/amd/pds_core/core.h
311
void pdsc_auxbus_dev_del(struct pdsc *cf, struct pdsc *pf,
drivers/net/ethernet/amd/pds_core/core.h
318
int pdsc_firmware_update(struct pdsc *pdsc, const struct firmware *fw,
drivers/net/ethernet/amd/pds_core/core.h
321
void pdsc_fw_down(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
322
void pdsc_fw_up(struct pdsc *pdsc);
drivers/net/ethernet/amd/pds_core/core.h
33
struct pdsc;
drivers/net/ethernet/amd/pds_core/core.h
37
struct pdsc *vf;
drivers/net/ethernet/amd/pds_core/debugfs.c
100
debugfs_create_file("viftypes", 0400, pdsc->dentry,
drivers/net/ethernet/amd/pds_core/debugfs.c
101
pdsc, &viftype_fops);
drivers/net/ethernet/amd/pds_core/debugfs.c
112
void pdsc_debugfs_add_qcq(struct pdsc *pdsc, struct pdsc_qcq *qcq)
drivers/net/ethernet/amd/pds_core/debugfs.c
119
qcq_dentry = debugfs_create_dir(q->name, pdsc->dentry);
drivers/net/ethernet/amd/pds_core/debugfs.c
153
struct pdsc_intr_info *intr = &pdsc->intr_info[qcq->intx];
drivers/net/ethernet/amd/pds_core/debugfs.c
162
intr_ctrl_regset = devm_kzalloc(pdsc->dev,
drivers/net/ethernet/amd/pds_core/debugfs.c
169
intr_ctrl_regset->base = &pdsc->intr_ctrl[intr->index];
drivers/net/ethernet/amd/pds_core/debugfs.c
20
void pdsc_debugfs_add_dev(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/debugfs.c
22
pdsc->dentry = debugfs_create_dir(pci_name(pdsc->pdev), pdsc_dir);
drivers/net/ethernet/amd/pds_core/debugfs.c
24
debugfs_create_ulong("state", 0400, pdsc->dentry, &pdsc->state);
drivers/net/ethernet/amd/pds_core/debugfs.c
27
void pdsc_debugfs_del_dev(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/debugfs.c
29
debugfs_remove_recursive(pdsc->dentry);
drivers/net/ethernet/amd/pds_core/debugfs.c
30
pdsc->dentry = NULL;
drivers/net/ethernet/amd/pds_core/debugfs.c
36
struct pdsc *pdsc = seq->private;
drivers/net/ethernet/amd/pds_core/debugfs.c
39
ident = &pdsc->dev_ident;
drivers/net/ethernet/amd/pds_core/debugfs.c
42
ioread32(&pdsc->info_regs->fw_heartbeat));
drivers/net/ethernet/amd/pds_core/debugfs.c
58
le16_to_cpu(pdsc->dev_ident.vif_types[vt]));
drivers/net/ethernet/amd/pds_core/debugfs.c
65
void pdsc_debugfs_add_ident(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/debugfs.c
70
dentry = debugfs_lookup("identity", pdsc->dentry);
drivers/net/ethernet/amd/pds_core/debugfs.c
76
debugfs_create_file("identity", 0400, pdsc->dentry,
drivers/net/ethernet/amd/pds_core/debugfs.c
77
pdsc, &identity_fops);
drivers/net/ethernet/amd/pds_core/debugfs.c
82
struct pdsc *pdsc = seq->private;
drivers/net/ethernet/amd/pds_core/debugfs.c
86
if (!pdsc->viftype_status[vt].name)
drivers/net/ethernet/amd/pds_core/debugfs.c
90
pdsc->viftype_status[vt].name,
drivers/net/ethernet/amd/pds_core/debugfs.c
91
pdsc->viftype_status[vt].supported,
drivers/net/ethernet/amd/pds_core/debugfs.c
92
pdsc->viftype_status[vt].enabled);
drivers/net/ethernet/amd/pds_core/debugfs.c
98
void pdsc_debugfs_add_viftype(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
100
iowrite32(1, &pdsc->cmd_regs->doorbell);
drivers/net/ethernet/amd/pds_core/dev.c
103
static void pdsc_devcmd_clean(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
105
iowrite32(0, &pdsc->cmd_regs->doorbell);
drivers/net/ethernet/amd/pds_core/dev.c
106
memset_io(&pdsc->cmd_regs->cmd, 0, sizeof(pdsc->cmd_regs->cmd));
drivers/net/ethernet/amd/pds_core/dev.c
129
static int pdsc_devcmd_wait(struct pdsc *pdsc, u8 opcode, int max_seconds)
drivers/net/ethernet/amd/pds_core/dev.c
131
struct device *dev = pdsc->dev;
drivers/net/ethernet/amd/pds_core/dev.c
145
running = pdsc_is_fw_running(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
149
done = pdsc_devcmd_done(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
168
pdsc_devcmd_clean(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
176
pdsc_devcmd_clean(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
180
status = pdsc_devcmd_status(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
190
int pdsc_devcmd_locked(struct pdsc *pdsc, union pds_core_dev_cmd *cmd,
drivers/net/ethernet/amd/pds_core/dev.c
195
if (!pdsc->cmd_regs)
drivers/net/ethernet/amd/pds_core/dev.c
198
memcpy_toio(&pdsc->cmd_regs->cmd, cmd, sizeof(*cmd));
drivers/net/ethernet/amd/pds_core/dev.c
199
pdsc_devcmd_dbell(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
200
err = pdsc_devcmd_wait(pdsc, cmd->opcode, max_seconds);
drivers/net/ethernet/amd/pds_core/dev.c
202
if ((err == -ENXIO || err == -ETIMEDOUT) && pdsc->wq)
drivers/net/ethernet/amd/pds_core/dev.c
203
queue_work(pdsc->wq, &pdsc->health_work);
drivers/net/ethernet/amd/pds_core/dev.c
205
memcpy_fromio(comp, &pdsc->cmd_regs->comp, sizeof(*comp));
drivers/net/ethernet/amd/pds_core/dev.c
210
int pdsc_devcmd(struct pdsc *pdsc, union pds_core_dev_cmd *cmd,
drivers/net/ethernet/amd/pds_core/dev.c
215
mutex_lock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/dev.c
216
err = pdsc_devcmd_locked(pdsc, cmd, comp, max_seconds);
drivers/net/ethernet/amd/pds_core/dev.c
217
mutex_unlock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/dev.c
222
int pdsc_devcmd_init(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
229
return pdsc_devcmd(pdsc, &cmd, &comp, pdsc->devcmd_timeout);
drivers/net/ethernet/amd/pds_core/dev.c
232
int pdsc_devcmd_reset(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
239
if (!pdsc_is_fw_running(pdsc))
drivers/net/ethernet/amd/pds_core/dev.c
242
return pdsc_devcmd(pdsc, &cmd, &comp, pdsc->devcmd_timeout);
drivers/net/ethernet/amd/pds_core/dev.c
245
static int pdsc_devcmd_identify_locked(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
253
return pdsc_devcmd_locked(pdsc, &cmd, &comp, pdsc->devcmd_timeout);
drivers/net/ethernet/amd/pds_core/dev.c
256
static void pdsc_init_devinfo(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
258
pdsc->dev_info.asic_type = ioread8(&pdsc->info_regs->asic_type);
drivers/net/ethernet/amd/pds_core/dev.c
259
pdsc->dev_info.asic_rev = ioread8(&pdsc->info_regs->asic_rev);
drivers/net/ethernet/amd/pds_core/dev.c
260
pdsc->fw_generation = PDS_CORE_FW_STS_F_GENERATION &
drivers/net/ethernet/amd/pds_core/dev.c
261
ioread8(&pdsc->info_regs->fw_status);
drivers/net/ethernet/amd/pds_core/dev.c
263
memcpy_fromio(pdsc->dev_info.fw_version,
drivers/net/ethernet/amd/pds_core/dev.c
264
pdsc->info_regs->fw_version,
drivers/net/ethernet/amd/pds_core/dev.c
266
pdsc->dev_info.fw_version[PDS_CORE_DEVINFO_FWVERS_BUFLEN] = 0;
drivers/net/ethernet/amd/pds_core/dev.c
268
memcpy_fromio(pdsc->dev_info.serial_num,
drivers/net/ethernet/amd/pds_core/dev.c
269
pdsc->info_regs->serial_num,
drivers/net/ethernet/amd/pds_core/dev.c
271
pdsc->dev_info.serial_num[PDS_CORE_DEVINFO_SERIAL_BUFLEN] = 0;
drivers/net/ethernet/amd/pds_core/dev.c
273
dev_dbg(pdsc->dev, "fw_version %s\n", pdsc->dev_info.fw_version);
drivers/net/ethernet/amd/pds_core/dev.c
276
static int pdsc_identify(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
288
dev_dbg(pdsc->dev, "release name truncated, don't care\n");
drivers/net/ethernet/amd/pds_core/dev.c
295
mutex_lock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/dev.c
297
sz = min_t(size_t, sizeof(drv), sizeof(pdsc->cmd_regs->data));
drivers/net/ethernet/amd/pds_core/dev.c
298
memcpy_toio(&pdsc->cmd_regs->data, &drv, sz);
drivers/net/ethernet/amd/pds_core/dev.c
300
err = pdsc_devcmd_identify_locked(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
302
sz = min_t(size_t, sizeof(pdsc->dev_ident),
drivers/net/ethernet/amd/pds_core/dev.c
303
sizeof(pdsc->cmd_regs->data));
drivers/net/ethernet/amd/pds_core/dev.c
304
memcpy_fromio(&pdsc->dev_ident, &pdsc->cmd_regs->data, sz);
drivers/net/ethernet/amd/pds_core/dev.c
306
mutex_unlock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/dev.c
309
dev_err(pdsc->dev, "Cannot identify device: %pe\n",
drivers/net/ethernet/amd/pds_core/dev.c
314
if (isprint(pdsc->dev_info.fw_version[0]) &&
drivers/net/ethernet/amd/pds_core/dev.c
315
isascii(pdsc->dev_info.fw_version[0]))
drivers/net/ethernet/amd/pds_core/dev.c
316
dev_info(pdsc->dev, "FW: %.*s\n",
drivers/net/ethernet/amd/pds_core/dev.c
317
(int)(sizeof(pdsc->dev_info.fw_version) - 1),
drivers/net/ethernet/amd/pds_core/dev.c
318
pdsc->dev_info.fw_version);
drivers/net/ethernet/amd/pds_core/dev.c
320
dev_info(pdsc->dev, "FW: (invalid string) 0x%02x 0x%02x 0x%02x 0x%02x ...\n",
drivers/net/ethernet/amd/pds_core/dev.c
321
(u8)pdsc->dev_info.fw_version[0],
drivers/net/ethernet/amd/pds_core/dev.c
322
(u8)pdsc->dev_info.fw_version[1],
drivers/net/ethernet/amd/pds_core/dev.c
323
(u8)pdsc->dev_info.fw_version[2],
drivers/net/ethernet/amd/pds_core/dev.c
324
(u8)pdsc->dev_info.fw_version[3]);
drivers/net/ethernet/amd/pds_core/dev.c
329
void pdsc_dev_uninit(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
331
if (pdsc->intr_info) {
drivers/net/ethernet/amd/pds_core/dev.c
334
for (i = 0; i < pdsc->nintrs; i++)
drivers/net/ethernet/amd/pds_core/dev.c
335
pdsc_intr_free(pdsc, i);
drivers/net/ethernet/amd/pds_core/dev.c
337
kfree(pdsc->intr_info);
drivers/net/ethernet/amd/pds_core/dev.c
338
pdsc->intr_info = NULL;
drivers/net/ethernet/amd/pds_core/dev.c
339
pdsc->nintrs = 0;
drivers/net/ethernet/amd/pds_core/dev.c
342
pci_free_irq_vectors(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/dev.c
345
int pdsc_dev_init(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
351
pdsc_init_devinfo(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
352
pdsc->devcmd_timeout = PDS_CORE_DEVCMD_TIMEOUT;
drivers/net/ethernet/amd/pds_core/dev.c
354
err = pdsc_devcmd_reset(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
358
err = pdsc_identify(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
362
pdsc_debugfs_add_ident(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
365
nintrs = le32_to_cpu(pdsc->dev_ident.nintrs);
drivers/net/ethernet/amd/pds_core/dev.c
369
pdsc->intr_info = kzalloc_objs(*pdsc->intr_info, nintrs);
drivers/net/ethernet/amd/pds_core/dev.c
370
if (!pdsc->intr_info)
drivers/net/ethernet/amd/pds_core/dev.c
373
err = pci_alloc_irq_vectors(pdsc->pdev, nintrs, nintrs, PCI_IRQ_MSIX);
drivers/net/ethernet/amd/pds_core/dev.c
375
dev_err(pdsc->dev, "Can't get %d intrs from OS: %pe\n",
drivers/net/ethernet/amd/pds_core/dev.c
380
pdsc->nintrs = nintrs;
drivers/net/ethernet/amd/pds_core/dev.c
385
kfree(pdsc->intr_info);
drivers/net/ethernet/amd/pds_core/dev.c
386
pdsc->intr_info = NULL;
drivers/net/ethernet/amd/pds_core/dev.c
58
bool pdsc_is_fw_running(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
60
if (!pdsc->info_regs)
drivers/net/ethernet/amd/pds_core/dev.c
63
pdsc->fw_status = ioread8(&pdsc->info_regs->fw_status);
drivers/net/ethernet/amd/pds_core/dev.c
64
pdsc->last_fw_time = jiffies;
drivers/net/ethernet/amd/pds_core/dev.c
65
pdsc->last_hb = ioread32(&pdsc->info_regs->fw_heartbeat);
drivers/net/ethernet/amd/pds_core/dev.c
70
return (pdsc->fw_status != PDS_RC_BAD_PCI) &&
drivers/net/ethernet/amd/pds_core/dev.c
71
(pdsc->fw_status & PDS_CORE_FW_STS_F_RUNNING);
drivers/net/ethernet/amd/pds_core/dev.c
74
bool pdsc_is_fw_good(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
76
bool fw_running = pdsc_is_fw_running(pdsc);
drivers/net/ethernet/amd/pds_core/dev.c
82
gen = pdsc->fw_status & PDS_CORE_FW_STS_F_GENERATION;
drivers/net/ethernet/amd/pds_core/dev.c
84
return fw_running && gen == pdsc->fw_generation;
drivers/net/ethernet/amd/pds_core/dev.c
87
static u8 pdsc_devcmd_status(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
89
return ioread8(&pdsc->cmd_regs->comp.status);
drivers/net/ethernet/amd/pds_core/dev.c
92
static bool pdsc_devcmd_done(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
94
return ioread32(&pdsc->cmd_regs->done) & PDS_CORE_DEV_CMD_DONE;
drivers/net/ethernet/amd/pds_core/dev.c
97
static void pdsc_devcmd_dbell(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/dev.c
99
iowrite32(0, &pdsc->cmd_regs->done);
drivers/net/ethernet/amd/pds_core/devlink.c
116
struct pdsc *pdsc = devlink_priv(dl);
drivers/net/ethernet/amd/pds_core/devlink.c
123
mutex_lock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/devlink.c
124
err = pdsc_devcmd_locked(pdsc, &cmd, &comp, pdsc->devcmd_timeout * 2);
drivers/net/ethernet/amd/pds_core/devlink.c
126
memcpy_fromio(&fw_list, pdsc->cmd_regs->data, sizeof(fw_list));
drivers/net/ethernet/amd/pds_core/devlink.c
127
mutex_unlock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/devlink.c
13
if (!pdsc->viftype_status)
drivers/net/ethernet/amd/pds_core/devlink.c
145
pdsc->dev_info.fw_version);
drivers/net/ethernet/amd/pds_core/devlink.c
149
snprintf(buf, sizeof(buf), "0x%x", pdsc->dev_info.asic_type);
drivers/net/ethernet/amd/pds_core/devlink.c
156
snprintf(buf, sizeof(buf), "0x%x", pdsc->dev_info.asic_rev);
drivers/net/ethernet/amd/pds_core/devlink.c
163
return devlink_info_serial_number_put(req, pdsc->dev_info.serial_num);
drivers/net/ethernet/amd/pds_core/devlink.c
17
if (pdsc->viftype_status[vt].dl_id == dl_id)
drivers/net/ethernet/amd/pds_core/devlink.c
170
struct pdsc *pdsc = devlink_health_reporter_priv(reporter);
drivers/net/ethernet/amd/pds_core/devlink.c
172
mutex_lock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/devlink.c
173
if (test_bit(PDSC_S_FW_DEAD, &pdsc->state))
drivers/net/ethernet/amd/pds_core/devlink.c
175
else if (!pdsc_is_fw_good(pdsc))
drivers/net/ethernet/amd/pds_core/devlink.c
179
mutex_unlock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/devlink.c
18
return &pdsc->viftype_status[vt];
drivers/net/ethernet/amd/pds_core/devlink.c
182
pdsc->fw_status & ~PDS_CORE_FW_STS_F_GENERATION);
drivers/net/ethernet/amd/pds_core/devlink.c
183
devlink_fmsg_u32_pair_put(fmsg, "Generation", pdsc->fw_generation >> 4);
drivers/net/ethernet/amd/pds_core/devlink.c
184
devlink_fmsg_u32_pair_put(fmsg, "Recoveries", pdsc->fw_recoveries);
drivers/net/ethernet/amd/pds_core/devlink.c
28
struct pdsc *pdsc = devlink_priv(dl);
drivers/net/ethernet/amd/pds_core/devlink.c
31
vt_entry = pdsc_dl_find_viftype_by_id(pdsc, id);
drivers/net/ethernet/amd/pds_core/devlink.c
44
struct pdsc *pdsc = devlink_priv(dl);
drivers/net/ethernet/amd/pds_core/devlink.c
49
vt_entry = pdsc_dl_find_viftype_by_id(pdsc, id);
drivers/net/ethernet/amd/pds_core/devlink.c
57
for (vf_id = 0; vf_id < pdsc->num_vfs; vf_id++) {
drivers/net/ethernet/amd/pds_core/devlink.c
58
struct pdsc *vf = pdsc->vfs[vf_id].vf;
drivers/net/ethernet/amd/pds_core/devlink.c
61
err = pdsc_auxbus_dev_add(vf, pdsc, vt_entry->vif_id,
drivers/net/ethernet/amd/pds_core/devlink.c
62
&pdsc->vfs[vf_id].padev);
drivers/net/ethernet/amd/pds_core/devlink.c
64
pdsc_auxbus_dev_del(vf, pdsc, &pdsc->vfs[vf_id].padev);
drivers/net/ethernet/amd/pds_core/devlink.c
74
struct pdsc *pdsc = devlink_priv(dl);
drivers/net/ethernet/amd/pds_core/devlink.c
77
vt_entry = pdsc_dl_find_viftype_by_id(pdsc, id);
drivers/net/ethernet/amd/pds_core/devlink.c
8
pdsc_viftype *pdsc_dl_find_viftype_by_id(struct pdsc *pdsc,
drivers/net/ethernet/amd/pds_core/devlink.c
81
if (!pdsc->viftype_status[vt_entry->vif_id].supported)
drivers/net/ethernet/amd/pds_core/devlink.c
91
struct pdsc *pdsc = devlink_priv(dl);
drivers/net/ethernet/amd/pds_core/devlink.c
99
return pdsc_firmware_update(pdsc, params->fw, extack);
drivers/net/ethernet/amd/pds_core/fw.c
108
dev_info(pdsc->dev, "Installing firmware\n");
drivers/net/ethernet/amd/pds_core/fw.c
110
if (!pdsc->cmd_regs)
drivers/net/ethernet/amd/pds_core/fw.c
113
dl = priv_to_devlink(pdsc);
drivers/net/ethernet/amd/pds_core/fw.c
117
buf_sz = sizeof(pdsc->cmd_regs->data);
drivers/net/ethernet/amd/pds_core/fw.c
119
dev_dbg(pdsc->dev,
drivers/net/ethernet/amd/pds_core/fw.c
136
mutex_lock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/fw.c
137
memcpy_toio(&pdsc->cmd_regs->data, fw->data + offset, copy_sz);
drivers/net/ethernet/amd/pds_core/fw.c
138
err = pdsc_devcmd_fw_download_locked(pdsc, data_addr,
drivers/net/ethernet/amd/pds_core/fw.c
140
mutex_unlock(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/fw.c
142
dev_err(pdsc->dev,
drivers/net/ethernet/amd/pds_core/fw.c
156
fw_slot = pdsc_devcmd_fw_install(pdsc);
drivers/net/ethernet/amd/pds_core/fw.c
159
dev_err(pdsc->dev, "install failed: %pe\n", ERR_PTR(err));
drivers/net/ethernet/amd/pds_core/fw.c
164
err = pdsc_fw_status_long_wait(pdsc, "Installing",
drivers/net/ethernet/amd/pds_core/fw.c
17
static int pdsc_devcmd_fw_download_locked(struct pdsc *pdsc, u64 addr,
drivers/net/ethernet/amd/pds_core/fw.c
174
err = pdsc_devcmd_fw_activate(pdsc, fw_slot);
drivers/net/ethernet/amd/pds_core/fw.c
180
err = pdsc_fw_status_long_wait(pdsc, "Selecting",
drivers/net/ethernet/amd/pds_core/fw.c
187
dev_info(pdsc->dev, "Firmware update completed, slot %d\n", fw_slot);
drivers/net/ethernet/amd/pds_core/fw.c
28
return pdsc_devcmd_locked(pdsc, &cmd, &comp, pdsc->devcmd_timeout);
drivers/net/ethernet/amd/pds_core/fw.c
31
static int pdsc_devcmd_fw_install(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/fw.c
40
err = pdsc_devcmd(pdsc, &cmd, &comp, pdsc->devcmd_timeout);
drivers/net/ethernet/amd/pds_core/fw.c
47
static int pdsc_devcmd_fw_activate(struct pdsc *pdsc,
drivers/net/ethernet/amd/pds_core/fw.c
57
return pdsc_devcmd(pdsc, &cmd, &comp, pdsc->devcmd_timeout);
drivers/net/ethernet/amd/pds_core/fw.c
60
static int pdsc_fw_status_long_wait(struct pdsc *pdsc,
drivers/net/ethernet/amd/pds_core/fw.c
82
err = pdsc_devcmd(pdsc, &cmd, &comp, pdsc->devcmd_timeout);
drivers/net/ethernet/amd/pds_core/fw.c
89
dev_err(pdsc->dev, "DEV_CMD firmware wait %s timed out\n",
drivers/net/ethernet/amd/pds_core/fw.c
98
int pdsc_firmware_update(struct pdsc *pdsc, const struct firmware *fw,
drivers/net/ethernet/amd/pds_core/main.c
105
pdsc->info_regs = bar->vaddr + PDS_CORE_BAR0_DEV_INFO_REGS_OFFSET;
drivers/net/ethernet/amd/pds_core/main.c
106
pdsc->cmd_regs = bar->vaddr + PDS_CORE_BAR0_DEV_CMD_REGS_OFFSET;
drivers/net/ethernet/amd/pds_core/main.c
107
pdsc->intr_status = bar->vaddr + PDS_CORE_BAR0_INTR_STATUS_OFFSET;
drivers/net/ethernet/amd/pds_core/main.c
108
pdsc->intr_ctrl = bar->vaddr + PDS_CORE_BAR0_INTR_CTRL_OFFSET;
drivers/net/ethernet/amd/pds_core/main.c
110
sig = ioread32(&pdsc->info_regs->signature);
drivers/net/ethernet/amd/pds_core/main.c
125
pdsc->db_pages = bar->vaddr;
drivers/net/ethernet/amd/pds_core/main.c
126
pdsc->phy_db_pages = bar->bus_addr;
drivers/net/ethernet/amd/pds_core/main.c
131
pdsc_unmap_bars(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
135
void __iomem *pdsc_map_dbpage(struct pdsc *pdsc, int page_num)
drivers/net/ethernet/amd/pds_core/main.c
137
return pci_iomap_range(pdsc->pdev,
drivers/net/ethernet/amd/pds_core/main.c
138
pdsc->bars[PDS_CORE_PCI_BAR_DBELL].res_index,
drivers/net/ethernet/amd/pds_core/main.c
144
struct pdsc *pdsc = pci_get_drvdata(pdev);
drivers/net/ethernet/amd/pds_core/main.c
145
struct device *dev = pdsc->dev;
drivers/net/ethernet/amd/pds_core/main.c
149
pdsc->vfs = kzalloc_objs(struct pdsc_vf, num_vfs);
drivers/net/ethernet/amd/pds_core/main.c
150
if (!pdsc->vfs)
drivers/net/ethernet/amd/pds_core/main.c
152
pdsc->num_vfs = num_vfs;
drivers/net/ethernet/amd/pds_core/main.c
167
kfree(pdsc->vfs);
drivers/net/ethernet/amd/pds_core/main.c
168
pdsc->vfs = NULL;
drivers/net/ethernet/amd/pds_core/main.c
169
pdsc->num_vfs = 0;
drivers/net/ethernet/amd/pds_core/main.c
174
static int pdsc_init_vf(struct pdsc *vf)
drivers/net/ethernet/amd/pds_core/main.c
177
struct pdsc *pf;
drivers/net/ethernet/amd/pds_core/main.c
218
static int pdsc_init_pf(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/main.c
225
pcie_print_link_status(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/main.c
227
err = pci_request_regions(pdsc->pdev, PDS_CORE_DRV_NAME);
drivers/net/ethernet/amd/pds_core/main.c
229
dev_err(pdsc->dev, "Cannot request PCI regions: %pe\n",
drivers/net/ethernet/amd/pds_core/main.c
234
err = pdsc_map_bars(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
239
snprintf(wq_name, sizeof(wq_name), "%s.%d", PDS_CORE_DRV_NAME, pdsc->uid);
drivers/net/ethernet/amd/pds_core/main.c
240
pdsc->wq = create_singlethread_workqueue(wq_name);
drivers/net/ethernet/amd/pds_core/main.c
241
if (!pdsc->wq) {
drivers/net/ethernet/amd/pds_core/main.c
245
INIT_WORK(&pdsc->health_work, pdsc_health_thread);
drivers/net/ethernet/amd/pds_core/main.c
246
INIT_WORK(&pdsc->pci_reset_work, pdsc_pci_reset_thread);
drivers/net/ethernet/amd/pds_core/main.c
247
timer_setup(&pdsc->wdtimer, pdsc_wdtimer_cb, 0);
drivers/net/ethernet/amd/pds_core/main.c
248
pdsc->wdtimer_period = PDSC_WATCHDOG_SECS * HZ;
drivers/net/ethernet/amd/pds_core/main.c
250
mutex_init(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/main.c
251
mutex_init(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/main.c
252
spin_lock_init(&pdsc->adminq_lock);
drivers/net/ethernet/amd/pds_core/main.c
254
mutex_lock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/main.c
255
set_bit(PDSC_S_FW_DEAD, &pdsc->state);
drivers/net/ethernet/amd/pds_core/main.c
257
err = pdsc_setup(pdsc, PDSC_SETUP_INIT);
drivers/net/ethernet/amd/pds_core/main.c
259
mutex_unlock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/main.c
26
struct pdsc *pdsc = timer_container_of(pdsc, t, wdtimer);
drivers/net/ethernet/amd/pds_core/main.c
263
err = pdsc_start(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
265
mutex_unlock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/main.c
269
mutex_unlock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/main.c
271
err = pdsc_auxbus_dev_add(pdsc, pdsc, PDS_DEV_TYPE_FWCTL, &pdsc->padev);
drivers/net/ethernet/amd/pds_core/main.c
275
dl = priv_to_devlink(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
28
dev_dbg(pdsc->dev, "%s: jiffies %ld\n", __func__, jiffies);
drivers/net/ethernet/amd/pds_core/main.c
281
dev_warn(pdsc->dev, "Failed to register devlink params: %pe\n",
drivers/net/ethernet/amd/pds_core/main.c
286
hr = devl_health_reporter_create(dl, &pdsc_fw_reporter_ops, pdsc);
drivers/net/ethernet/amd/pds_core/main.c
289
dev_warn(pdsc->dev, "Failed to create fw reporter: %pe\n", hr);
drivers/net/ethernet/amd/pds_core/main.c
29
mod_timer(&pdsc->wdtimer,
drivers/net/ethernet/amd/pds_core/main.c
293
pdsc->fw_reporter = hr;
drivers/net/ethernet/amd/pds_core/main.c
299
mod_timer(&pdsc->wdtimer, round_jiffies(jiffies + pdsc->wdtimer_period));
drivers/net/ethernet/amd/pds_core/main.c
30
round_jiffies(jiffies + pdsc->wdtimer_period));
drivers/net/ethernet/amd/pds_core/main.c
307
pdsc_auxbus_dev_del(pdsc, pdsc, &pdsc->padev);
drivers/net/ethernet/amd/pds_core/main.c
309
pdsc_stop(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
311
pdsc_teardown(pdsc, PDSC_TEARDOWN_REMOVING);
drivers/net/ethernet/amd/pds_core/main.c
313
timer_shutdown_sync(&pdsc->wdtimer);
drivers/net/ethernet/amd/pds_core/main.c
314
if (pdsc->wq)
drivers/net/ethernet/amd/pds_core/main.c
315
destroy_workqueue(pdsc->wq);
drivers/net/ethernet/amd/pds_core/main.c
316
mutex_destroy(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/main.c
317
mutex_destroy(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/main.c
318
pci_free_irq_vectors(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/main.c
32
queue_work(pdsc->wq, &pdsc->health_work);
drivers/net/ethernet/amd/pds_core/main.c
320
pdsc_unmap_bars(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
322
pci_release_regions(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/main.c
342
struct pdsc *pdsc;
drivers/net/ethernet/amd/pds_core/main.c
348
dl = devlink_alloc(ops, sizeof(struct pdsc), dev);
drivers/net/ethernet/amd/pds_core/main.c
35
static void pdsc_unmap_bars(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/main.c
351
pdsc = devlink_priv(dl);
drivers/net/ethernet/amd/pds_core/main.c
353
pdsc->pdev = pdev;
drivers/net/ethernet/amd/pds_core/main.c
354
pdsc->dev = &pdev->dev;
drivers/net/ethernet/amd/pds_core/main.c
355
set_bit(PDSC_S_INITING_DRIVER, &pdsc->state);
drivers/net/ethernet/amd/pds_core/main.c
356
pci_set_drvdata(pdev, pdsc);
drivers/net/ethernet/amd/pds_core/main.c
357
pdsc_debugfs_add_dev(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
361
dev_err(pdsc->dev, "%s: id alloc failed: %pe\n",
drivers/net/ethernet/amd/pds_core/main.c
365
pdsc->uid = err;
drivers/net/ethernet/amd/pds_core/main.c
37
struct pdsc_dev_bar *bars = pdsc->bars;
drivers/net/ethernet/amd/pds_core/main.c
383
err = pdsc_init_pf(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
385
err = pdsc_init_vf(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
391
clear_bit(PDSC_S_INITING_DRIVER, &pdsc->state);
drivers/net/ethernet/amd/pds_core/main.c
397
ida_free(&pdsc_ida, pdsc->uid);
drivers/net/ethernet/amd/pds_core/main.c
399
pdsc_debugfs_del_dev(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
40
pdsc->info_regs = NULL;
drivers/net/ethernet/amd/pds_core/main.c
407
struct pdsc *pdsc = pci_get_drvdata(pdev);
drivers/net/ethernet/amd/pds_core/main.c
41
pdsc->cmd_regs = NULL;
drivers/net/ethernet/amd/pds_core/main.c
413
dl = priv_to_devlink(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
417
if (pdsc->fw_reporter) {
drivers/net/ethernet/amd/pds_core/main.c
418
devl_health_reporter_destroy(pdsc->fw_reporter);
drivers/net/ethernet/amd/pds_core/main.c
419
pdsc->fw_reporter = NULL;
drivers/net/ethernet/amd/pds_core/main.c
42
pdsc->intr_status = NULL;
drivers/net/ethernet/amd/pds_core/main.c
427
struct pdsc *pf;
drivers/net/ethernet/amd/pds_core/main.c
429
pf = pdsc_get_pf_struct(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/main.c
43
pdsc->intr_ctrl = NULL;
drivers/net/ethernet/amd/pds_core/main.c
431
pdsc_auxbus_dev_del(pdsc, pf, &pf->vfs[pdsc->vf_id].padev);
drivers/net/ethernet/amd/pds_core/main.c
432
pf->vfs[pdsc->vf_id].vf = NULL;
drivers/net/ethernet/amd/pds_core/main.c
440
pdsc_auxbus_dev_del(pdsc, pdsc, &pdsc->padev);
drivers/net/ethernet/amd/pds_core/main.c
442
timer_shutdown_sync(&pdsc->wdtimer);
drivers/net/ethernet/amd/pds_core/main.c
444
mutex_lock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/main.c
445
set_bit(PDSC_S_STOPPING_DRIVER, &pdsc->state);
drivers/net/ethernet/amd/pds_core/main.c
447
pdsc_stop(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
448
pdsc_teardown(pdsc, PDSC_TEARDOWN_REMOVING);
drivers/net/ethernet/amd/pds_core/main.c
449
mutex_unlock(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/main.c
451
if (pdsc->wq)
drivers/net/ethernet/amd/pds_core/main.c
452
destroy_workqueue(pdsc->wq);
drivers/net/ethernet/amd/pds_core/main.c
453
mutex_destroy(&pdsc->config_lock);
drivers/net/ethernet/amd/pds_core/main.c
454
mutex_destroy(&pdsc->devcmd_lock);
drivers/net/ethernet/amd/pds_core/main.c
456
pdsc_unmap_bars(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
462
ida_free(&pdsc_ida, pdsc->uid);
drivers/net/ethernet/amd/pds_core/main.c
463
pdsc_debugfs_del_dev(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
467
static void pdsc_stop_health_thread(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/main.c
469
if (pdsc->pdev->is_virtfn)
drivers/net/ethernet/amd/pds_core/main.c
47
pci_iounmap(pdsc->pdev, bars[i].vaddr);
drivers/net/ethernet/amd/pds_core/main.c
472
timer_shutdown_sync(&pdsc->wdtimer);
drivers/net/ethernet/amd/pds_core/main.c
473
if (pdsc->health_work.func)
drivers/net/ethernet/amd/pds_core/main.c
474
cancel_work_sync(&pdsc->health_work);
drivers/net/ethernet/amd/pds_core/main.c
477
static void pdsc_restart_health_thread(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/main.c
479
if (pdsc->pdev->is_virtfn)
drivers/net/ethernet/amd/pds_core/main.c
482
timer_setup(&pdsc->wdtimer, pdsc_wdtimer_cb, 0);
drivers/net/ethernet/amd/pds_core/main.c
483
mod_timer(&pdsc->wdtimer, jiffies + 1);
drivers/net/ethernet/amd/pds_core/main.c
488
struct pdsc *pdsc = pci_get_drvdata(pdev);
drivers/net/ethernet/amd/pds_core/main.c
490
pdsc_stop_health_thread(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
491
pdsc_fw_down(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
494
struct pdsc *pf;
drivers/net/ethernet/amd/pds_core/main.c
496
pf = pdsc_get_pf_struct(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/main.c
498
pdsc_auxbus_dev_del(pdsc, pf,
drivers/net/ethernet/amd/pds_core/main.c
499
&pf->vfs[pdsc->vf_id].padev);
drivers/net/ethernet/amd/pds_core/main.c
501
pdsc_auxbus_dev_del(pdsc, pdsc, &pdsc->padev);
drivers/net/ethernet/amd/pds_core/main.c
504
pdsc_unmap_bars(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
512
struct pdsc *pdsc = pci_get_drvdata(pdev);
drivers/net/ethernet/amd/pds_core/main.c
513
struct device *dev = pdsc->dev;
drivers/net/ethernet/amd/pds_core/main.c
52
static int pdsc_map_bars(struct pdsc *pdsc)
drivers/net/ethernet/amd/pds_core/main.c
524
pcie_print_link_status(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/main.c
526
err = pci_request_regions(pdsc->pdev, PDS_CORE_DRV_NAME);
drivers/net/ethernet/amd/pds_core/main.c
528
dev_err(pdsc->dev, "Cannot request PCI regions: %pe\n",
drivers/net/ethernet/amd/pds_core/main.c
533
err = pdsc_map_bars(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
538
pdsc_fw_up(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
539
pdsc_restart_health_thread(pdsc);
drivers/net/ethernet/amd/pds_core/main.c
54
struct pdsc_dev_bar *bar = pdsc->bars;
drivers/net/ethernet/amd/pds_core/main.c
542
struct pdsc *pf;
drivers/net/ethernet/amd/pds_core/main.c
544
pf = pdsc_get_pf_struct(pdsc->pdev);
drivers/net/ethernet/amd/pds_core/main.c
546
pdsc_auxbus_dev_add(pdsc, pf, PDS_DEV_TYPE_VDPA,
drivers/net/ethernet/amd/pds_core/main.c
547
&pf->vfs[pdsc->vf_id].padev);
drivers/net/ethernet/amd/pds_core/main.c
549
pdsc_auxbus_dev_add(pdsc, pdsc, PDS_DEV_TYPE_FWCTL,
drivers/net/ethernet/amd/pds_core/main.c
55
struct pci_dev *pdev = pdsc->pdev;
drivers/net/ethernet/amd/pds_core/main.c
550
&pdsc->padev);
drivers/net/ethernet/amd/pds_core/main.c
56
struct device *dev = pdsc->dev;
drivers/net/ethernet/amd/pds_core/main.c
567
struct pdsc *pdsc = pci_get_drvdata(pdev);
drivers/net/ethernet/amd/pds_core/main.c
569
if (test_bit(PDSC_S_FW_DEAD, &pdsc->state))
drivers/net/ethernet/amd/pds_core/main.c
63
bars = pdsc->bars;
drivers/vfio/pci/pds/cmds.c
25
struct pdsc *pdsc;
drivers/vfio/pci/pds/cmds.c
34
pdsc = pdsc_get_pf_struct(pdev);
drivers/vfio/pci/pds/cmds.c
35
if (IS_ERR(pdsc))
drivers/vfio/pci/pds/cmds.c
36
return PTR_ERR(pdsc);
drivers/vfio/pci/pds/cmds.c
38
err = pdsc_adminq_post(pdsc, &cmd, resp, fast_poll);
drivers/vfio/pci/pds/cmds.c
50
struct pdsc *pdsc;
drivers/vfio/pci/pds/cmds.c
57
pdsc = pdsc_get_pf_struct(pdev);
drivers/vfio/pci/pds/cmds.c
58
if (IS_ERR(pdsc))
drivers/vfio/pci/pds/cmds.c
59
return PTR_ERR(pdsc);
drivers/vfio/pci/pds/cmds.c
61
ci = pds_client_register(pdsc, devname);
drivers/vfio/pci/pds/cmds.c
73
struct pdsc *pdsc;
drivers/vfio/pci/pds/cmds.c
76
pdsc = pdsc_get_pf_struct(pdev);
drivers/vfio/pci/pds/cmds.c
77
if (IS_ERR(pdsc))
drivers/vfio/pci/pds/cmds.c
80
err = pds_client_unregister(pdsc, pds_vfio->client_id);
include/linux/pds/pds_adminq.h
1539
struct pdsc;
include/linux/pds/pds_adminq.h
1540
int pdsc_adminq_post(struct pdsc *pdsc,
include/linux/pds/pds_common.h
49
struct pdsc;
include/linux/pds/pds_common.h
54
int pds_client_register(struct pdsc *pf, char *devname);
include/linux/pds/pds_common.h
55
int pds_client_unregister(struct pdsc *pf, u16 client_id);