arch/powerpc/include/asm/device.h
36
struct eeh_dev *edev;
arch/powerpc/include/asm/eeh.h
104
#define eeh_pe_for_each_dev(pe, edev, tmp) \
arch/powerpc/include/asm/eeh.h
105
list_for_each_entry_safe(edev, tmp, &pe->edevs, entry)
arch/powerpc/include/asm/eeh.h
155
#define EEH_EDEV_PRINT(level, edev, fmt, ...) \
arch/powerpc/include/asm/eeh.h
157
(edev)->controller->global_number, PCI_BUSNO((edev)->bdfn), \
arch/powerpc/include/asm/eeh.h
158
PCI_SLOT((edev)->bdfn), PCI_FUNC((edev)->bdfn), \
arch/powerpc/include/asm/eeh.h
159
((edev)->pe ? (edev)->pe_config_addr : 0xffff), ##__VA_ARGS__)
arch/powerpc/include/asm/eeh.h
160
#define eeh_edev_dbg(edev, fmt, ...) EEH_EDEV_PRINT(debug, (edev), fmt, ##__VA_ARGS__)
arch/powerpc/include/asm/eeh.h
161
#define eeh_edev_info(edev, fmt, ...) EEH_EDEV_PRINT(info, (edev), fmt, ##__VA_ARGS__)
arch/powerpc/include/asm/eeh.h
162
#define eeh_edev_warn(edev, fmt, ...) EEH_EDEV_PRINT(warn, (edev), fmt, ##__VA_ARGS__)
arch/powerpc/include/asm/eeh.h
163
#define eeh_edev_err(edev, fmt, ...) EEH_EDEV_PRINT(err, (edev), fmt, ##__VA_ARGS__)
arch/powerpc/include/asm/eeh.h
165
static inline struct pci_dn *eeh_dev_to_pdn(struct eeh_dev *edev)
arch/powerpc/include/asm/eeh.h
167
return edev ? edev->pdn : NULL;
arch/powerpc/include/asm/eeh.h
170
static inline struct pci_dev *eeh_dev_to_pci_dev(struct eeh_dev *edev)
arch/powerpc/include/asm/eeh.h
172
return edev ? edev->pdev : NULL;
arch/powerpc/include/asm/eeh.h
175
static inline struct eeh_pe *eeh_dev_to_pe(struct eeh_dev* edev)
arch/powerpc/include/asm/eeh.h
177
return edev ? edev->pe : NULL;
arch/powerpc/include/asm/eeh.h
225
int (*read_config)(struct eeh_dev *edev, int where, int size, u32 *val);
arch/powerpc/include/asm/eeh.h
226
int (*write_config)(struct eeh_dev *edev, int where, int size, u32 val);
arch/powerpc/include/asm/eeh.h
228
int (*restore_config)(struct eeh_dev *edev);
arch/powerpc/include/asm/eeh.h
229
int (*notify_resume)(struct eeh_dev *edev);
arch/powerpc/include/asm/eeh.h
274
typedef void (*eeh_edev_traverse_func)(struct eeh_dev *edev, void *flag);
arch/powerpc/include/asm/eeh.h
282
int eeh_pe_tree_insert(struct eeh_dev *edev, struct eeh_pe *new_pe_parent);
arch/powerpc/include/asm/eeh.h
283
int eeh_pe_tree_remove(struct eeh_dev *edev);
arch/powerpc/include/asm/eeh.h
298
int eeh_dev_check_failure(struct eeh_dev *edev);
arch/powerpc/include/asm/pci-bridge.h
215
struct eeh_dev *edev; /* eeh device */
arch/powerpc/include/asm/pci-bridge.h
252
return pdn ? pdn->edev : NULL;
arch/powerpc/include/asm/ppc-pci.h
59
void eeh_save_bars(struct eeh_dev *edev);
arch/powerpc/kernel/eeh.c
1009
struct eeh_dev *edev;
arch/powerpc/kernel/eeh.c
1022
edev = eeh_ops->probe(dev);
arch/powerpc/kernel/eeh.c
1023
if (!edev) {
arch/powerpc/kernel/eeh.c
1037
if (edev->pdev && edev->pdev != dev) {
arch/powerpc/kernel/eeh.c
1038
eeh_pe_tree_remove(edev);
arch/powerpc/kernel/eeh.c
1039
eeh_addr_cache_rmv_dev(edev->pdev);
arch/powerpc/kernel/eeh.c
1040
eeh_sysfs_remove_device(edev->pdev);
arch/powerpc/kernel/eeh.c
1047
edev->mode |= EEH_DEV_NO_HANDLER;
arch/powerpc/kernel/eeh.c
1051
edev->pdev = dev;
arch/powerpc/kernel/eeh.c
1052
dev->dev.archdata.edev = edev;
arch/powerpc/kernel/eeh.c
1069
struct eeh_dev *edev;
arch/powerpc/kernel/eeh.c
1073
edev = pci_dev_to_eeh_dev(dev);
arch/powerpc/kernel/eeh.c
1078
if (!edev || !edev->pdev || !edev->pe) {
arch/powerpc/kernel/eeh.c
1089
edev->pdev = NULL;
arch/powerpc/kernel/eeh.c
1095
if (edev->mode & EEH_DEV_SYSFS)
arch/powerpc/kernel/eeh.c
1104
edev->mode |= EEH_DEV_NO_HANDLER;
arch/powerpc/kernel/eeh.c
1114
edev->in_error = false;
arch/powerpc/kernel/eeh.c
1115
dev->dev.archdata.edev = NULL;
arch/powerpc/kernel/eeh.c
1116
if (!(edev->pe->state & EEH_PE_KEEP))
arch/powerpc/kernel/eeh.c
1117
eeh_pe_tree_remove(edev);
arch/powerpc/kernel/eeh.c
1119
edev->mode |= EEH_DEV_DISCONNECTED;
arch/powerpc/kernel/eeh.c
1154
struct eeh_dev *edev, *tmp;
arch/powerpc/kernel/eeh.c
1169
eeh_pe_for_each_dev(pe, edev, tmp) {
arch/powerpc/kernel/eeh.c
1170
pdev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh.c
1209
struct eeh_dev *edev;
arch/powerpc/kernel/eeh.c
1219
edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/eeh.c
1220
if (!edev || !edev->pe)
arch/powerpc/kernel/eeh.c
1229
ret = eeh_pe_change_owner(edev->pe);
arch/powerpc/kernel/eeh.c
1234
atomic_inc(&edev->pe->pass_dev_cnt);
arch/powerpc/kernel/eeh.c
1250
struct eeh_dev *edev;
arch/powerpc/kernel/eeh.c
1259
edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/eeh.c
1260
if (!edev || !edev->pe || !eeh_pe_passed(edev->pe))
arch/powerpc/kernel/eeh.c
1264
WARN_ON(atomic_dec_if_positive(&edev->pe->pass_dev_cnt) < 0);
arch/powerpc/kernel/eeh.c
1265
eeh_pe_change_owner(edev->pe);
arch/powerpc/kernel/eeh.c
1280
struct eeh_dev *edev;
arch/powerpc/kernel/eeh.c
1292
edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/eeh.c
1293
if (!edev || !edev->pe)
arch/powerpc/kernel/eeh.c
1296
return edev->pe;
arch/powerpc/kernel/eeh.c
1405
struct eeh_dev *edev, *tmp;
arch/powerpc/kernel/eeh.c
1415
eeh_pe_for_each_dev(pe, edev, tmp) {
arch/powerpc/kernel/eeh.c
1416
pdev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh.c
168
static size_t eeh_dump_dev_log(struct eeh_dev *edev, char *buf, size_t len)
arch/powerpc/kernel/eeh.c
176
edev->pe->phb->global_number, edev->bdfn >> 8,
arch/powerpc/kernel/eeh.c
177
PCI_SLOT(edev->bdfn), PCI_FUNC(edev->bdfn));
arch/powerpc/kernel/eeh.c
179
edev->pe->phb->global_number, edev->bdfn >> 8,
arch/powerpc/kernel/eeh.c
1794
struct eeh_dev *edev;
arch/powerpc/kernel/eeh.c
180
PCI_SLOT(edev->bdfn), PCI_FUNC(edev->bdfn));
arch/powerpc/kernel/eeh.c
1801
edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/eeh.c
1802
if (!edev) {
arch/powerpc/kernel/eeh.c
1808
ret = eeh_dev_check_failure(edev);
arch/powerpc/kernel/eeh.c
182
eeh_ops->read_config(edev, PCI_VENDOR_ID, 4, &cfg);
arch/powerpc/kernel/eeh.c
186
eeh_ops->read_config(edev, PCI_COMMAND, 4, &cfg);
arch/powerpc/kernel/eeh.c
191
if (edev->mode & EEH_DEV_BRIDGE) {
arch/powerpc/kernel/eeh.c
192
eeh_ops->read_config(edev, PCI_SEC_STATUS, 2, &cfg);
arch/powerpc/kernel/eeh.c
196
eeh_ops->read_config(edev, PCI_BRIDGE_CONTROL, 2, &cfg);
arch/powerpc/kernel/eeh.c
202
cap = edev->pcix_cap;
arch/powerpc/kernel/eeh.c
204
eeh_ops->read_config(edev, cap, 4, &cfg);
arch/powerpc/kernel/eeh.c
208
eeh_ops->read_config(edev, cap+4, 4, &cfg);
arch/powerpc/kernel/eeh.c
214
cap = edev->pcie_cap;
arch/powerpc/kernel/eeh.c
220
eeh_ops->read_config(edev, cap+4*i, 4, &cfg);
arch/powerpc/kernel/eeh.c
241
cap = edev->aer_cap;
arch/powerpc/kernel/eeh.c
247
eeh_ops->read_config(edev, cap+4*i, 4, &cfg);
arch/powerpc/kernel/eeh.c
271
struct eeh_dev *edev, *tmp;
arch/powerpc/kernel/eeh.c
274
eeh_pe_for_each_dev(pe, edev, tmp)
arch/powerpc/kernel/eeh.c
275
*plen += eeh_dump_dev_log(edev, pci_regs_buf + *plen,
arch/powerpc/kernel/eeh.c
424
int eeh_dev_check_failure(struct eeh_dev *edev)
arch/powerpc/kernel/eeh.c
439
if (!edev) {
arch/powerpc/kernel/eeh.c
443
dev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh.c
444
pe = eeh_dev_to_pe(edev);
arch/powerpc/kernel/eeh.c
449
eeh_edev_dbg(edev, "Ignored check\n");
arch/powerpc/kernel/eeh.c
484
eeh_edev_err(edev, "%d reads ignored for recovering device at location=%s driver=%s\n",
arch/powerpc/kernel/eeh.c
488
eeh_edev_err(edev, "Might be infinite loop in %s driver\n",
arch/powerpc/kernel/eeh.c
591
struct eeh_dev *edev;
arch/powerpc/kernel/eeh.c
595
edev = eeh_addr_cache_get_dev(addr);
arch/powerpc/kernel/eeh.c
596
if (!edev) {
arch/powerpc/kernel/eeh.c
601
return eeh_dev_check_failure(edev);
arch/powerpc/kernel/eeh.c
684
static void eeh_disable_and_save_dev_state(struct eeh_dev *edev,
arch/powerpc/kernel/eeh.c
687
struct pci_dev *pdev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh.c
710
static void eeh_restore_dev_state(struct eeh_dev *edev, void *userdata)
arch/powerpc/kernel/eeh.c
712
struct pci_dev *pdev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh.c
720
eeh_ops->restore_config(edev);
arch/powerpc/kernel/eeh.c
737
struct eeh_dev *edev = pci_dev_to_eeh_dev(dev);
arch/powerpc/kernel/eeh.c
738
struct eeh_pe *pe = eeh_dev_to_pe(edev);
arch/powerpc/kernel/eeh.c
791
static void eeh_set_dev_freset(struct eeh_dev *edev, void *flag)
arch/powerpc/kernel/eeh.c
796
dev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh.c
902
void eeh_save_bars(struct eeh_dev *edev)
arch/powerpc/kernel/eeh.c
906
if (!edev)
arch/powerpc/kernel/eeh.c
910
eeh_ops->read_config(edev, i * 4, 4, &edev->config_space[i]);
arch/powerpc/kernel/eeh.c
918
if (edev->mode & EEH_DEV_BRIDGE)
arch/powerpc/kernel/eeh.c
919
edev->config_space[1] |= PCI_COMMAND_MASTER;
arch/powerpc/kernel/eeh_cache.c
147
piar->edev = pci_dev_to_eeh_dev(dev);
arch/powerpc/kernel/eeh_cache.c
151
eeh_edev_dbg(piar->edev, "PIAR: insert range=[%pap:%pap]\n",
arch/powerpc/kernel/eeh_cache.c
162
struct eeh_dev *edev;
arch/powerpc/kernel/eeh_cache.c
165
edev = pci_dev_to_eeh_dev(dev);
arch/powerpc/kernel/eeh_cache.c
166
if (!edev) {
arch/powerpc/kernel/eeh_cache.c
173
if (!edev->pe) {
arch/powerpc/kernel/eeh_cache.c
224
eeh_edev_dbg(piar->edev, "PIAR: remove range=[%pap:%pap]\n",
arch/powerpc/kernel/eeh_cache.c
44
struct eeh_dev *edev;
arch/powerpc/kernel/eeh_cache.c
67
return piar->edev;
arch/powerpc/kernel/eeh_cache.c
84
struct eeh_dev *edev;
arch/powerpc/kernel/eeh_cache.c
88
edev = __eeh_addr_cache_get_device(addr);
arch/powerpc/kernel/eeh_cache.c
90
return edev;
arch/powerpc/kernel/eeh_driver.c
1047
list_for_each_entry_safe(edev, tmp, &rmv_data.removed_vf_list,
arch/powerpc/kernel/eeh_driver.c
1049
eeh_add_virt_device(edev);
arch/powerpc/kernel/eeh_driver.c
1050
list_del(&edev->rmv_entry);
arch/powerpc/kernel/eeh_driver.c
1059
eeh_pe_for_each_dev(tmp_pe, edev, tmp) {
arch/powerpc/kernel/eeh_driver.c
1060
edev->mode &= ~EEH_DEV_NO_HANDLER;
arch/powerpc/kernel/eeh_driver.c
1061
edev->in_error = false;
arch/powerpc/kernel/eeh_driver.c
1123
eeh_pe_for_each_dev(tmp_pe, edev, tmp)
arch/powerpc/kernel/eeh_driver.c
1124
eeh_clear_slot_attention(edev->pdev);
arch/powerpc/kernel/eeh_driver.c
1141
struct eeh_dev *edev, *tmp_edev;
arch/powerpc/kernel/eeh_driver.c
1209
eeh_pe_for_each_dev(tmp_pe, edev, tmp_edev)
arch/powerpc/kernel/eeh_driver.c
1210
edev->mode &= ~EEH_DEV_NO_HANDLER;
arch/powerpc/kernel/eeh_driver.c
140
static void eeh_disable_irq(struct eeh_dev *edev)
arch/powerpc/kernel/eeh_driver.c
146
if (edev->pdev->msi_enabled || edev->pdev->msix_enabled)
arch/powerpc/kernel/eeh_driver.c
149
if (!irq_has_action(edev->pdev->irq))
arch/powerpc/kernel/eeh_driver.c
152
edev->mode |= EEH_DEV_IRQ_DISABLED;
arch/powerpc/kernel/eeh_driver.c
153
disable_irq_nosync(edev->pdev->irq);
arch/powerpc/kernel/eeh_driver.c
163
static void eeh_enable_irq(struct eeh_dev *edev)
arch/powerpc/kernel/eeh_driver.c
165
if ((edev->mode) & EEH_DEV_IRQ_DISABLED) {
arch/powerpc/kernel/eeh_driver.c
166
edev->mode &= ~EEH_DEV_IRQ_DISABLED;
arch/powerpc/kernel/eeh_driver.c
187
if (irqd_irq_disabled(irq_get_irq_data(edev->pdev->irq)))
arch/powerpc/kernel/eeh_driver.c
188
enable_irq(edev->pdev->irq);
arch/powerpc/kernel/eeh_driver.c
192
static void eeh_dev_save_state(struct eeh_dev *edev, void *userdata)
arch/powerpc/kernel/eeh_driver.c
196
if (!edev)
arch/powerpc/kernel/eeh_driver.c
206
if (edev->pe && (edev->pe->state & EEH_PE_CFG_RESTRICTED))
arch/powerpc/kernel/eeh_driver.c
209
pdev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh_driver.c
219
struct eeh_dev *edev, *tmp;
arch/powerpc/kernel/eeh_driver.c
222
eeh_pe_for_each_dev(pe, edev, tmp)
arch/powerpc/kernel/eeh_driver.c
223
if (eeh_edev_actionable(edev))
arch/powerpc/kernel/eeh_driver.c
224
edev->pdev->error_state = s;
arch/powerpc/kernel/eeh_driver.c
230
struct eeh_dev *edev, *tmp;
arch/powerpc/kernel/eeh_driver.c
233
eeh_pe_for_each_dev(pe, edev, tmp) {
arch/powerpc/kernel/eeh_driver.c
234
if (!eeh_edev_actionable(edev))
arch/powerpc/kernel/eeh_driver.c
237
if (!eeh_pcid_get(edev->pdev))
arch/powerpc/kernel/eeh_driver.c
241
eeh_enable_irq(edev);
arch/powerpc/kernel/eeh_driver.c
243
eeh_disable_irq(edev);
arch/powerpc/kernel/eeh_driver.c
245
eeh_pcid_put(edev->pdev);
arch/powerpc/kernel/eeh_driver.c
260
pdev = edev->pdev;
arch/powerpc/kernel/eeh_driver.c
269
if (eeh_edev_actionable(edev)) {
arch/powerpc/kernel/eeh_driver.c
276
else if (edev->mode & EEH_DEV_NO_HANDLER)
arch/powerpc/kernel/eeh_driver.c
291
!eeh_dev_removed(edev), !eeh_pe_passed(edev->pe));
arch/powerpc/kernel/eeh_driver.c
294
if (edev->pdev != pdev)
arch/powerpc/kernel/eeh_driver.c
336
edev->in_error = true;
arch/powerpc/kernel/eeh_driver.c
373
if (!driver->err_handler->slot_reset || !edev->in_error)
arch/powerpc/kernel/eeh_driver.c
394
if (edev->pe && (edev->pe->state & EEH_PE_CFG_RESTRICTED)) {
arch/powerpc/kernel/eeh_driver.c
395
if (list_is_last(&edev->entry, &edev->pe->edevs))
arch/powerpc/kernel/eeh_driver.c
396
eeh_pe_restore_bars(edev->pe);
arch/powerpc/kernel/eeh_driver.c
426
if (!driver->err_handler->resume || !edev->in_error)
arch/powerpc/kernel/eeh_driver.c
432
pci_uevent_ers(edev->pdev, PCI_ERS_RESULT_RECOVERED);
arch/powerpc/kernel/eeh_driver.c
466
static void *eeh_add_virt_device(struct eeh_dev *edev)
arch/powerpc/kernel/eeh_driver.c
471
if (!(edev->physfn)) {
arch/powerpc/kernel/eeh_driver.c
486
pci_iov_add_virtfn(edev->physfn, edev->vf_index);
arch/powerpc/kernel/eeh_driver.c
504
if (!eeh_edev_actionable(edev) ||
arch/powerpc/kernel/eeh_driver.c
524
edev->mode |= EEH_DEV_DISCONNECTED;
arch/powerpc/kernel/eeh_driver.c
528
if (edev->physfn) {
arch/powerpc/kernel/eeh_driver.c
530
pci_iov_remove_virtfn(edev->physfn, edev->vf_index);
arch/powerpc/kernel/eeh_driver.c
531
edev->pdev = NULL;
arch/powerpc/kernel/eeh_driver.c
534
list_add(&edev->rmv_entry, &rmv_data->removed_vf_list);
arch/powerpc/kernel/eeh_driver.c
547
if (!(edev->mode & EEH_DEV_DISCONNECTED))
arch/powerpc/kernel/eeh_driver.c
550
edev->mode &= ~(EEH_DEV_DISCONNECTED | EEH_DEV_IRQ_DISABLED);
arch/powerpc/kernel/eeh_driver.c
636
struct eeh_dev *edev;
arch/powerpc/kernel/eeh_driver.c
699
edev = list_first_entry(&pe->edevs, struct eeh_dev, entry);
arch/powerpc/kernel/eeh_driver.c
702
eeh_add_virt_device(edev);
arch/powerpc/kernel/eeh_driver.c
76
static bool eeh_dev_removed(struct eeh_dev *edev)
arch/powerpc/kernel/eeh_driver.c
78
return !edev || (edev->mode & EEH_DEV_REMOVED);
arch/powerpc/kernel/eeh_driver.c
81
static bool eeh_edev_actionable(struct eeh_dev *edev)
arch/powerpc/kernel/eeh_driver.c
83
if (!edev->pdev)
arch/powerpc/kernel/eeh_driver.c
839
struct eeh_dev *edev, *tmp;
arch/powerpc/kernel/eeh_driver.c
85
if (edev->pdev->error_state == pci_channel_io_perm_failure)
arch/powerpc/kernel/eeh_driver.c
867
eeh_pe_for_each_dev(tmp_pe, edev, tmp)
arch/powerpc/kernel/eeh_driver.c
868
if (eeh_slot_presence_check(edev->pdev))
arch/powerpc/kernel/eeh_driver.c
87
if (eeh_dev_removed(edev))
arch/powerpc/kernel/eeh_driver.c
89
if (eeh_pe_passed(edev->pe))
arch/powerpc/kernel/eeh_driver.c
922
eeh_pe_for_each_dev(tmp_pe, edev, tmp)
arch/powerpc/kernel/eeh_driver.c
923
edev->mode &= ~EEH_DEV_NO_HANDLER;
arch/powerpc/kernel/eeh_pe.c
239
struct eeh_dev *edev, *tmp;
arch/powerpc/kernel/eeh_pe.c
249
eeh_pe_for_each_dev(pe, edev, tmp)
arch/powerpc/kernel/eeh_pe.c
250
fn(edev, flag);
arch/powerpc/kernel/eeh_pe.c
307
int eeh_pe_tree_insert(struct eeh_dev *edev, struct eeh_pe *new_pe_parent)
arch/powerpc/kernel/eeh_pe.c
309
struct pci_controller *hose = edev->controller;
arch/powerpc/kernel/eeh_pe.c
318
pe = eeh_pe_get(hose, edev->pe_config_addr);
arch/powerpc/kernel/eeh_pe.c
321
list_add_tail(&edev->entry, &pe->edevs);
arch/powerpc/kernel/eeh_pe.c
322
edev->pe = pe;
arch/powerpc/kernel/eeh_pe.c
335
eeh_edev_dbg(edev, "Added to existing PE (parent: PE#%x)\n",
arch/powerpc/kernel/eeh_pe.c
340
edev->pe = pe;
arch/powerpc/kernel/eeh_pe.c
343
list_add_tail(&edev->entry, &pe->edevs);
arch/powerpc/kernel/eeh_pe.c
344
eeh_edev_dbg(edev, "Added to bus PE\n");
arch/powerpc/kernel/eeh_pe.c
350
if (edev->physfn)
arch/powerpc/kernel/eeh_pe.c
359
pe->addr = edev->pe_config_addr;
arch/powerpc/kernel/eeh_pe.c
372
edev->pe = NULL;
arch/powerpc/kernel/eeh_pe.c
386
list_add_tail(&edev->entry, &pe->edevs);
arch/powerpc/kernel/eeh_pe.c
387
edev->pe = pe;
arch/powerpc/kernel/eeh_pe.c
388
eeh_edev_dbg(edev, "Added to new (parent: PE#%x)\n",
arch/powerpc/kernel/eeh_pe.c
403
int eeh_pe_tree_remove(struct eeh_dev *edev)
arch/powerpc/kernel/eeh_pe.c
409
pe = eeh_dev_to_pe(edev);
arch/powerpc/kernel/eeh_pe.c
411
eeh_edev_dbg(edev, "No PE found for device.\n");
arch/powerpc/kernel/eeh_pe.c
416
edev->pe = NULL;
arch/powerpc/kernel/eeh_pe.c
417
list_del(&edev->entry);
arch/powerpc/kernel/eeh_pe.c
537
struct eeh_dev *edev;
arch/powerpc/kernel/eeh_pe.c
542
list_for_each_entry(edev, &pe->edevs, entry) {
arch/powerpc/kernel/eeh_pe.c
543
pdev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh_pe.c
554
static void __eeh_pe_dev_mode_mark(struct eeh_dev *edev, void *flag)
arch/powerpc/kernel/eeh_pe.c
558
edev->mode |= mode;
arch/powerpc/kernel/eeh_pe.c
585
struct eeh_dev *edev, *tmp;
arch/powerpc/kernel/eeh_pe.c
607
eeh_pe_for_each_dev(pe, edev, tmp) {
arch/powerpc/kernel/eeh_pe.c
608
pdev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh_pe.c
632
static void eeh_bridge_check_link(struct eeh_dev *edev)
arch/powerpc/kernel/eeh_pe.c
642
if (!(edev->mode & (EEH_DEV_ROOT_PORT | EEH_DEV_DS_PORT)))
arch/powerpc/kernel/eeh_pe.c
645
eeh_edev_dbg(edev, "Checking PCIe link...\n");
arch/powerpc/kernel/eeh_pe.c
648
cap = edev->pcie_cap;
arch/powerpc/kernel/eeh_pe.c
649
eeh_ops->read_config(edev, cap + PCI_EXP_SLTSTA, 2, &val);
arch/powerpc/kernel/eeh_pe.c
651
eeh_edev_dbg(edev, "No card in the slot (0x%04x) !\n", val);
arch/powerpc/kernel/eeh_pe.c
656
eeh_ops->read_config(edev, cap + PCI_EXP_SLTCAP, 2, &val);
arch/powerpc/kernel/eeh_pe.c
658
eeh_ops->read_config(edev, cap + PCI_EXP_SLTCTL, 2, &val);
arch/powerpc/kernel/eeh_pe.c
660
eeh_edev_dbg(edev, "In power-off state, power it on ...\n");
arch/powerpc/kernel/eeh_pe.c
663
eeh_ops->write_config(edev, cap + PCI_EXP_SLTCTL, 2, val);
arch/powerpc/kernel/eeh_pe.c
669
eeh_ops->read_config(edev, cap + PCI_EXP_LNKCTL, 2, &val);
arch/powerpc/kernel/eeh_pe.c
671
eeh_ops->write_config(edev, cap + PCI_EXP_LNKCTL, 2, val);
arch/powerpc/kernel/eeh_pe.c
674
if (edev->pdev) {
arch/powerpc/kernel/eeh_pe.c
675
if (!edev->pdev->link_active_reporting) {
arch/powerpc/kernel/eeh_pe.c
676
eeh_edev_dbg(edev, "No link reporting capability\n");
arch/powerpc/kernel/eeh_pe.c
688
eeh_ops->read_config(edev, cap + PCI_EXP_LNKSTA, 2, &val);
arch/powerpc/kernel/eeh_pe.c
694
eeh_edev_dbg(edev, "Link up (%s)\n",
arch/powerpc/kernel/eeh_pe.c
697
eeh_edev_dbg(edev, "Link not ready (0x%04x)\n", val);
arch/powerpc/kernel/eeh_pe.c
701
#define SAVED_BYTE(OFF) (((u8 *)(edev->config_space))[BYTE_SWAP(OFF)])
arch/powerpc/kernel/eeh_pe.c
703
static void eeh_restore_bridge_bars(struct eeh_dev *edev)
arch/powerpc/kernel/eeh_pe.c
712
eeh_ops->write_config(edev, i*4, 4, edev->config_space[i]);
arch/powerpc/kernel/eeh_pe.c
714
eeh_ops->write_config(edev, 14*4, 4, edev->config_space[14]);
arch/powerpc/kernel/eeh_pe.c
717
eeh_ops->write_config(edev, PCI_CACHE_LINE_SIZE, 1,
arch/powerpc/kernel/eeh_pe.c
719
eeh_ops->write_config(edev, PCI_LATENCY_TIMER, 1,
arch/powerpc/kernel/eeh_pe.c
722
eeh_ops->write_config(edev, 15*4, 4, edev->config_space[15]);
arch/powerpc/kernel/eeh_pe.c
725
eeh_ops->write_config(edev, PCI_COMMAND, 4, edev->config_space[1] |
arch/powerpc/kernel/eeh_pe.c
729
eeh_bridge_check_link(edev);
arch/powerpc/kernel/eeh_pe.c
732
static void eeh_restore_device_bars(struct eeh_dev *edev)
arch/powerpc/kernel/eeh_pe.c
738
eeh_ops->write_config(edev, i*4, 4, edev->config_space[i]);
arch/powerpc/kernel/eeh_pe.c
740
eeh_ops->write_config(edev, 12*4, 4, edev->config_space[12]);
arch/powerpc/kernel/eeh_pe.c
742
eeh_ops->write_config(edev, PCI_CACHE_LINE_SIZE, 1,
arch/powerpc/kernel/eeh_pe.c
744
eeh_ops->write_config(edev, PCI_LATENCY_TIMER, 1,
arch/powerpc/kernel/eeh_pe.c
748
eeh_ops->write_config(edev, 15*4, 4, edev->config_space[15]);
arch/powerpc/kernel/eeh_pe.c
754
eeh_ops->read_config(edev, PCI_COMMAND, 4, &cmd);
arch/powerpc/kernel/eeh_pe.c
755
if (edev->config_space[1] & PCI_COMMAND_PARITY)
arch/powerpc/kernel/eeh_pe.c
759
if (edev->config_space[1] & PCI_COMMAND_SERR)
arch/powerpc/kernel/eeh_pe.c
763
eeh_ops->write_config(edev, PCI_COMMAND, 4, cmd);
arch/powerpc/kernel/eeh_pe.c
775
static void eeh_restore_one_device_bars(struct eeh_dev *edev, void *flag)
arch/powerpc/kernel/eeh_pe.c
778
if (edev->mode & EEH_DEV_BRIDGE)
arch/powerpc/kernel/eeh_pe.c
779
eeh_restore_bridge_bars(edev);
arch/powerpc/kernel/eeh_pe.c
781
eeh_restore_device_bars(edev);
arch/powerpc/kernel/eeh_pe.c
784
eeh_ops->restore_config(edev);
arch/powerpc/kernel/eeh_pe.c
871
struct eeh_dev *edev;
arch/powerpc/kernel/eeh_pe.c
883
edev = list_first_entry_or_null(&pe->edevs, struct eeh_dev, entry);
arch/powerpc/kernel/eeh_pe.c
886
pdev = eeh_dev_to_pci_dev(edev);
arch/powerpc/kernel/eeh_sysfs.c
100
if (!edev || !edev->pe || !eeh_ops->notify_resume)
arch/powerpc/kernel/eeh_sysfs.c
103
if (eeh_ops->notify_resume(edev))
arch/powerpc/kernel/eeh_sysfs.c
139
struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/eeh_sysfs.c
145
if (edev && (edev->mode & EEH_DEV_SYSFS))
arch/powerpc/kernel/eeh_sysfs.c
155
else if (edev)
arch/powerpc/kernel/eeh_sysfs.c
156
edev->mode |= EEH_DEV_SYSFS;
arch/powerpc/kernel/eeh_sysfs.c
161
struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/eeh_sysfs.c
163
if (!edev) {
arch/powerpc/kernel/eeh_sysfs.c
168
edev->mode &= ~EEH_DEV_SYSFS;
arch/powerpc/kernel/eeh_sysfs.c
29
struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev); \
arch/powerpc/kernel/eeh_sysfs.c
31
if (!edev) \
arch/powerpc/kernel/eeh_sysfs.c
34
return sprintf(buf, _format "\n", edev->_memb); \
arch/powerpc/kernel/eeh_sysfs.c
45
struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/eeh_sysfs.c
48
if (!edev || !edev->pe)
arch/powerpc/kernel/eeh_sysfs.c
51
state = eeh_ops->get_state(edev->pe, NULL);
arch/powerpc/kernel/eeh_sysfs.c
53
state, edev->pe->state);
arch/powerpc/kernel/eeh_sysfs.c
61
struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/eeh_sysfs.c
63
if (!edev || !edev->pe)
arch/powerpc/kernel/eeh_sysfs.c
67
if (!(edev->pe->state & EEH_PE_ISOLATED))
arch/powerpc/kernel/eeh_sysfs.c
70
if (eeh_unfreeze_pe(edev->pe))
arch/powerpc/kernel/eeh_sysfs.c
72
eeh_pe_state_clear(edev->pe, EEH_PE_ISOLATED, true);
arch/powerpc/kernel/eeh_sysfs.c
84
struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/eeh_sysfs.c
87
if (!edev || !edev->pe)
arch/powerpc/kernel/eeh_sysfs.c
98
struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev);
arch/powerpc/kernel/pci_dn.c
130
struct eeh_dev *edev;
arch/powerpc/kernel/pci_dn.c
133
edev = kzalloc_obj(*edev);
arch/powerpc/kernel/pci_dn.c
134
if (!edev)
arch/powerpc/kernel/pci_dn.c
138
pdn->edev = edev;
arch/powerpc/kernel/pci_dn.c
139
edev->pdn = pdn;
arch/powerpc/kernel/pci_dn.c
140
edev->bdfn = (pdn->busno << 8) | pdn->devfn;
arch/powerpc/kernel/pci_dn.c
141
edev->controller = pdn->phb;
arch/powerpc/kernel/pci_dn.c
143
return edev;
arch/powerpc/kernel/pci_dn.c
193
struct eeh_dev *edev __maybe_unused;
arch/powerpc/kernel/pci_dn.c
206
edev = eeh_dev_init(pdn);
arch/powerpc/kernel/pci_dn.c
207
BUG_ON(!edev);
arch/powerpc/kernel/pci_dn.c
210
edev->physfn = pdev;
arch/powerpc/kernel/pci_dn.c
211
edev->vf_index = i;
arch/powerpc/kernel/pci_dn.c
243
struct eeh_dev *edev __maybe_unused;
arch/powerpc/kernel/pci_dn.c
258
edev = pdn_to_eeh_dev(pdn);
arch/powerpc/kernel/pci_dn.c
259
if (edev) {
arch/powerpc/kernel/pci_dn.c
265
if (edev->pe)
arch/powerpc/kernel/pci_dn.c
266
eeh_pe_tree_remove(edev);
arch/powerpc/kernel/pci_dn.c
268
pdn->edev = NULL;
arch/powerpc/kernel/pci_dn.c
269
kfree(edev);
arch/powerpc/kernel/pci_dn.c
290
struct eeh_dev *edev;
arch/powerpc/kernel/pci_dn.c
321
edev = eeh_dev_init(pdn);
arch/powerpc/kernel/pci_dn.c
322
if (!edev) {
arch/powerpc/kernel/pci_dn.c
347
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
arch/powerpc/kernel/pci_dn.c
349
if (edev)
arch/powerpc/kernel/pci_dn.c
350
edev->pdn = NULL;
arch/powerpc/kernel/pci_of_scan.c
362
struct eeh_dev *edev = pdn_to_eeh_dev(PCI_DN(dn));
arch/powerpc/kernel/pci_of_scan.c
383
if (edev && (edev->mode & EEH_DEV_REMOVED))
arch/powerpc/kernel/rtas_pci.c
108
if (pdn->edev && pdn->edev->pe &&
arch/powerpc/kernel/rtas_pci.c
109
(pdn->edev->pe->state & EEH_PE_CFG_BLOCKED))
arch/powerpc/kernel/rtas_pci.c
57
if (pdn->edev && pdn->edev->pe &&
arch/powerpc/kernel/rtas_pci.c
58
(pdn->edev->pe->state & EEH_PE_CFG_BLOCKED))
arch/powerpc/platforms/powernv/eeh-powernv.c
1004
struct eeh_dev *edev;
arch/powerpc/platforms/powernv/eeh-powernv.c
1009
edev = list_first_entry_or_null(&pe->edevs, struct eeh_dev, entry);
arch/powerpc/platforms/powernv/eeh-powernv.c
1010
pdn = eeh_dev_to_pdn(edev);
arch/powerpc/platforms/powernv/eeh-powernv.c
1209
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/powernv/eeh-powernv.c
1211
if (!edev || !edev->pe)
arch/powerpc/platforms/powernv/eeh-powernv.c
1219
if (edev->physfn && (edev->pe->state & EEH_PE_RESET))
arch/powerpc/platforms/powernv/eeh-powernv.c
1222
if (edev->pe->state & EEH_PE_CFG_BLOCKED)
arch/powerpc/platforms/powernv/eeh-powernv.c
1228
static int pnv_eeh_read_config(struct eeh_dev *edev,
arch/powerpc/platforms/powernv/eeh-powernv.c
1231
struct pci_dn *pdn = eeh_dev_to_pdn(edev);
arch/powerpc/platforms/powernv/eeh-powernv.c
1244
static int pnv_eeh_write_config(struct eeh_dev *edev,
arch/powerpc/platforms/powernv/eeh-powernv.c
1247
struct pci_dn *pdn = eeh_dev_to_pdn(edev);
arch/powerpc/platforms/powernv/eeh-powernv.c
1602
static int pnv_eeh_restore_config(struct eeh_dev *edev)
arch/powerpc/platforms/powernv/eeh-powernv.c
1607
if (!edev)
arch/powerpc/platforms/powernv/eeh-powernv.c
1610
if (edev->physfn)
arch/powerpc/platforms/powernv/eeh-powernv.c
1613
phb = edev->controller->private_data;
arch/powerpc/platforms/powernv/eeh-powernv.c
1615
OPAL_REINIT_PCI_DEV, edev->bdfn);
arch/powerpc/platforms/powernv/eeh-powernv.c
1619
__func__, edev->bdfn, ret);
arch/powerpc/platforms/powernv/eeh-powernv.c
267
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/powernv/eeh-powernv.c
271
if (!edev || !edev->pcie_cap)
arch/powerpc/platforms/powernv/eeh-powernv.c
326
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/powernv/eeh-powernv.c
338
if (!edev || edev->pe)
arch/powerpc/platforms/powernv/eeh-powernv.c
342
if (edev->pdev) {
arch/powerpc/platforms/powernv/eeh-powernv.c
346
return edev;
arch/powerpc/platforms/powernv/eeh-powernv.c
353
eeh_edev_dbg(edev, "Probing device\n");
arch/powerpc/platforms/powernv/eeh-powernv.c
356
edev->mode &= 0xFFFFFF00;
arch/powerpc/platforms/powernv/eeh-powernv.c
357
edev->pcix_cap = pnv_eeh_find_cap(pdn, PCI_CAP_ID_PCIX);
arch/powerpc/platforms/powernv/eeh-powernv.c
358
edev->pcie_cap = pnv_eeh_find_cap(pdn, PCI_CAP_ID_EXP);
arch/powerpc/platforms/powernv/eeh-powernv.c
359
edev->af_cap = pnv_eeh_find_cap(pdn, PCI_CAP_ID_AF);
arch/powerpc/platforms/powernv/eeh-powernv.c
360
edev->aer_cap = pnv_eeh_find_ecap(pdn, PCI_EXT_CAP_ID_ERR);
arch/powerpc/platforms/powernv/eeh-powernv.c
362
edev->mode |= EEH_DEV_BRIDGE;
arch/powerpc/platforms/powernv/eeh-powernv.c
363
if (edev->pcie_cap) {
arch/powerpc/platforms/powernv/eeh-powernv.c
364
pnv_pci_cfg_read(pdn, edev->pcie_cap + PCI_EXP_FLAGS,
arch/powerpc/platforms/powernv/eeh-powernv.c
368
edev->mode |= EEH_DEV_ROOT_PORT;
arch/powerpc/platforms/powernv/eeh-powernv.c
370
edev->mode |= EEH_DEV_DS_PORT;
arch/powerpc/platforms/powernv/eeh-powernv.c
374
edev->pe_config_addr = phb->ioda.pe_rmap[config_addr];
arch/powerpc/platforms/powernv/eeh-powernv.c
379
ret = eeh_pe_tree_insert(edev, upstream_pe);
arch/powerpc/platforms/powernv/eeh-powernv.c
381
eeh_edev_warn(edev, "Failed to add device to PE (code %d)\n", ret);
arch/powerpc/platforms/powernv/eeh-powernv.c
411
edev->pe->state |= EEH_PE_CFG_RESTRICTED;
arch/powerpc/platforms/powernv/eeh-powernv.c
419
if (!(edev->pe->state & EEH_PE_PRI_BUS)) {
arch/powerpc/platforms/powernv/eeh-powernv.c
420
edev->pe->bus = pci_find_bus(hose->global_number,
arch/powerpc/platforms/powernv/eeh-powernv.c
422
if (edev->pe->bus)
arch/powerpc/platforms/powernv/eeh-powernv.c
423
edev->pe->state |= EEH_PE_PRI_BUS;
arch/powerpc/platforms/powernv/eeh-powernv.c
437
eeh_save_bars(edev);
arch/powerpc/platforms/powernv/eeh-powernv.c
439
eeh_edev_dbg(edev, "EEH enabled on device\n");
arch/powerpc/platforms/powernv/eeh-powernv.c
441
return edev;
arch/powerpc/platforms/powernv/eeh-powernv.c
804
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/powernv/eeh-powernv.c
805
int aer = edev ? edev->aer_cap : 0;
arch/powerpc/platforms/powernv/eeh-powernv.c
817
eeh_ops->read_config(edev, aer + PCI_ERR_UNCOR_MASK,
arch/powerpc/platforms/powernv/eeh-powernv.c
820
eeh_ops->write_config(edev, aer + PCI_ERR_UNCOR_MASK,
arch/powerpc/platforms/powernv/eeh-powernv.c
824
eeh_ops->read_config(edev, PCI_BRIDGE_CONTROL, 2, &ctrl);
arch/powerpc/platforms/powernv/eeh-powernv.c
826
eeh_ops->write_config(edev, PCI_BRIDGE_CONTROL, 2, ctrl);
arch/powerpc/platforms/powernv/eeh-powernv.c
831
eeh_ops->read_config(edev, PCI_BRIDGE_CONTROL, 2, &ctrl);
arch/powerpc/platforms/powernv/eeh-powernv.c
833
eeh_ops->write_config(edev, PCI_BRIDGE_CONTROL, 2, ctrl);
arch/powerpc/platforms/powernv/eeh-powernv.c
839
eeh_ops->read_config(edev, aer + PCI_ERR_UNCOR_MASK,
arch/powerpc/platforms/powernv/eeh-powernv.c
842
eeh_ops->write_config(edev, aer + PCI_ERR_UNCOR_MASK,
arch/powerpc/platforms/powernv/eeh-powernv.c
910
struct eeh_dev *edev = pdn->edev;
arch/powerpc/platforms/powernv/eeh-powernv.c
915
eeh_ops->read_config(edev, pos, 2, &status);
arch/powerpc/platforms/powernv/eeh-powernv.c
930
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/powernv/eeh-powernv.c
933
if (WARN_ON(!edev->pcie_cap))
arch/powerpc/platforms/powernv/eeh-powernv.c
936
eeh_ops->read_config(edev, edev->pcie_cap + PCI_EXP_DEVCAP, 4, ®);
arch/powerpc/platforms/powernv/eeh-powernv.c
944
edev->pcie_cap + PCI_EXP_DEVSTA,
arch/powerpc/platforms/powernv/eeh-powernv.c
946
eeh_ops->read_config(edev, edev->pcie_cap + PCI_EXP_DEVCTL,
arch/powerpc/platforms/powernv/eeh-powernv.c
949
eeh_ops->write_config(edev, edev->pcie_cap + PCI_EXP_DEVCTL,
arch/powerpc/platforms/powernv/eeh-powernv.c
954
eeh_ops->read_config(edev, edev->pcie_cap + PCI_EXP_DEVCTL,
arch/powerpc/platforms/powernv/eeh-powernv.c
957
eeh_ops->write_config(edev, edev->pcie_cap + PCI_EXP_DEVCTL,
arch/powerpc/platforms/powernv/eeh-powernv.c
968
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/powernv/eeh-powernv.c
971
if (WARN_ON(!edev->af_cap))
arch/powerpc/platforms/powernv/eeh-powernv.c
974
eeh_ops->read_config(edev, edev->af_cap + PCI_AF_CAP, 1, &cap);
arch/powerpc/platforms/powernv/eeh-powernv.c
987
edev->af_cap + PCI_AF_CTRL,
arch/powerpc/platforms/powernv/eeh-powernv.c
989
eeh_ops->write_config(edev, edev->af_cap + PCI_AF_CTRL,
arch/powerpc/platforms/powernv/eeh-powernv.c
994
eeh_ops->write_config(edev, edev->af_cap + PCI_AF_CTRL, 1, 0);
arch/powerpc/platforms/powernv/pci.c
646
struct eeh_dev *edev = NULL;
arch/powerpc/platforms/powernv/pci.c
654
edev = pdn->edev;
arch/powerpc/platforms/powernv/pci.c
655
if (edev) {
arch/powerpc/platforms/powernv/pci.c
656
if (edev->pe &&
arch/powerpc/platforms/powernv/pci.c
657
(edev->pe->state & EEH_PE_CFG_BLOCKED))
arch/powerpc/platforms/powernv/pci.c
660
if (edev->mode & EEH_DEV_REMOVED)
arch/powerpc/platforms/powernv/pci.c
691
if (phb->flags & PNV_PHB_FLAG_EEH && pdn->edev) {
arch/powerpc/platforms/powernv/pci.c
693
eeh_dev_check_failure(pdn->edev))
arch/powerpc/platforms/pseries/eeh_pseries.c
290
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/pseries/eeh_pseries.c
295
if (!edev || !edev->pcie_cap)
arch/powerpc/platforms/pseries/eeh_pseries.c
325
static struct eeh_pe *pseries_eeh_pe_get_parent(struct eeh_dev *edev)
arch/powerpc/platforms/pseries/eeh_pseries.c
328
struct pci_dn *pdn = eeh_dev_to_pdn(edev);
arch/powerpc/platforms/pseries/eeh_pseries.c
335
if (edev->physfn)
arch/powerpc/platforms/pseries/eeh_pseries.c
336
pdn = pci_get_pdn(edev->physfn);
arch/powerpc/platforms/pseries/eeh_pseries.c
367
struct eeh_dev *edev;
arch/powerpc/platforms/pseries/eeh_pseries.c
380
edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/pseries/eeh_pseries.c
381
if (!edev)
arch/powerpc/platforms/pseries/eeh_pseries.c
390
if (edev->pe)
arch/powerpc/platforms/pseries/eeh_pseries.c
401
eeh_edev_dbg(edev, "Probing device\n");
arch/powerpc/platforms/pseries/eeh_pseries.c
408
edev->pcix_cap = pseries_eeh_find_cap(pdn, PCI_CAP_ID_PCIX);
arch/powerpc/platforms/pseries/eeh_pseries.c
409
edev->pcie_cap = pseries_eeh_find_cap(pdn, PCI_CAP_ID_EXP);
arch/powerpc/platforms/pseries/eeh_pseries.c
410
edev->aer_cap = pseries_eeh_find_ecap(pdn, PCI_EXT_CAP_ID_ERR);
arch/powerpc/platforms/pseries/eeh_pseries.c
411
edev->mode &= 0xFFFFFF00;
arch/powerpc/platforms/pseries/eeh_pseries.c
413
edev->mode |= EEH_DEV_BRIDGE;
arch/powerpc/platforms/pseries/eeh_pseries.c
414
if (edev->pcie_cap) {
arch/powerpc/platforms/pseries/eeh_pseries.c
415
rtas_pci_dn_read_config(pdn, edev->pcie_cap + PCI_EXP_FLAGS,
arch/powerpc/platforms/pseries/eeh_pseries.c
419
edev->mode |= EEH_DEV_ROOT_PORT;
arch/powerpc/platforms/pseries/eeh_pseries.c
421
edev->mode |= EEH_DEV_DS_PORT;
arch/powerpc/platforms/pseries/eeh_pseries.c
428
eeh_edev_dbg(edev, "Unable to find pe_config_addr\n");
arch/powerpc/platforms/pseries/eeh_pseries.c
437
eeh_edev_dbg(edev, "Enabling EEH on device\n");
arch/powerpc/platforms/pseries/eeh_pseries.c
440
eeh_edev_dbg(edev, "EEH failed to enable on device (code %d)\n", ret);
arch/powerpc/platforms/pseries/eeh_pseries.c
444
edev->pe_config_addr = pe.addr;
arch/powerpc/platforms/pseries/eeh_pseries.c
448
parent = pseries_eeh_pe_get_parent(edev);
arch/powerpc/platforms/pseries/eeh_pseries.c
449
eeh_pe_tree_insert(edev, parent);
arch/powerpc/platforms/pseries/eeh_pseries.c
450
eeh_save_bars(edev);
arch/powerpc/platforms/pseries/eeh_pseries.c
451
eeh_edev_dbg(edev, "EEH enabled for device");
arch/powerpc/platforms/pseries/eeh_pseries.c
456
eeh_edev_dbg(edev, "EEH is unsupported on device (code = %d)\n", ret);
arch/powerpc/platforms/pseries/eeh_pseries.c
461
struct eeh_dev *edev;
arch/powerpc/platforms/pseries/eeh_pseries.c
472
edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/pseries/eeh_pseries.c
473
if (!edev || !edev->pe)
arch/powerpc/platforms/pseries/eeh_pseries.c
476
return edev;
arch/powerpc/platforms/pseries/eeh_pseries.c
677
static int pseries_eeh_read_config(struct eeh_dev *edev, int where, int size, u32 *val)
arch/powerpc/platforms/pseries/eeh_pseries.c
679
struct pci_dn *pdn = eeh_dev_to_pdn(edev);
arch/powerpc/platforms/pseries/eeh_pseries.c
693
static int pseries_eeh_write_config(struct eeh_dev *edev, int where, int size, u32 val)
arch/powerpc/platforms/pseries/eeh_pseries.c
695
struct pci_dn *pdn = eeh_dev_to_pdn(edev);
arch/powerpc/platforms/pseries/eeh_pseries.c
724
static int pseries_call_allow_unfreeze(struct eeh_dev *edev)
arch/powerpc/platforms/pseries/eeh_pseries.c
733
if (pci_num_vf(edev->physfn ? edev->physfn : edev->pdev)) {
arch/powerpc/platforms/pseries/eeh_pseries.c
734
if (edev->pdev->is_physfn) {
arch/powerpc/platforms/pseries/eeh_pseries.c
735
cur_vfs = pci_num_vf(edev->pdev);
arch/powerpc/platforms/pseries/eeh_pseries.c
736
pdn = eeh_dev_to_pdn(edev);
arch/powerpc/platforms/pseries/eeh_pseries.c
748
bus = pci_iov_virtfn_bus(edev->pdev,
arch/powerpc/platforms/pseries/eeh_pseries.c
750
devfn = pci_iov_virtfn_devfn(edev->pdev,
arch/powerpc/platforms/pseries/eeh_pseries.c
759
pdn = pci_get_pdn(edev->pdev);
arch/powerpc/platforms/pseries/eeh_pseries.c
760
physfn_pdn = pci_get_pdn(edev->physfn);
arch/powerpc/platforms/pseries/eeh_pseries.c
762
vf_pe_num = physfn_pdn->pe_num_map[edev->vf_index];
arch/powerpc/platforms/pseries/eeh_pseries.c
77
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
arch/powerpc/platforms/pseries/eeh_pseries.c
774
static int pseries_notify_resume(struct eeh_dev *edev)
arch/powerpc/platforms/pseries/eeh_pseries.c
776
if (!edev)
arch/powerpc/platforms/pseries/eeh_pseries.c
782
if (edev->pdev->is_physfn || edev->pdev->is_virtfn)
arch/powerpc/platforms/pseries/eeh_pseries.c
783
return pseries_call_allow_unfreeze(edev);
arch/powerpc/platforms/pseries/eeh_pseries.c
79
edev->pe_config_addr = (pdn->busno << 16) | (pdn->devfn << 8);
arch/powerpc/platforms/pseries/eeh_pseries.c
80
eeh_pe_tree_remove(edev); /* Remove as it is adding to bus pe */
arch/powerpc/platforms/pseries/eeh_pseries.c
81
eeh_pe_tree_insert(edev, physfn_pe); /* Add as VF PE type */
arch/powerpc/platforms/pseries/msi.c
190
struct eeh_dev *edev;
arch/powerpc/platforms/pseries/msi.c
199
edev = pdn_to_eeh_dev(PCI_DN(dn));
arch/powerpc/platforms/pseries/msi.c
200
if (edev->pe)
arch/powerpc/platforms/pseries/msi.c
201
edev = list_first_entry(&edev->pe->edevs, struct eeh_dev,
arch/powerpc/platforms/pseries/msi.c
203
dn = pci_device_to_OF_node(edev->pdev);
drivers/accel/ethosu/ethosu_drv.c
152
priv->edev = to_ethosu_device(ddev);
drivers/accel/ethosu/ethosu_drv.h
11
struct ethosu_device *edev;
drivers/accel/ethosu/ethosu_gem.c
359
struct ethosu_device *edev = to_ethosu_device(ddev);
drivers/accel/ethosu/ethosu_gem.c
423
use_scale = ethosu_is_u65(edev) ?
drivers/accel/ethosu/ethosu_gem.c
593
if (ethosu_is_u65(edev))
drivers/accel/ethosu/ethosu_gem.c
599
if (ethosu_is_u65(edev))
drivers/accel/ethosu/ethosu_job.c
294
int ethosu_job_init(struct ethosu_device *edev)
drivers/accel/ethosu/ethosu_job.c
296
struct device *dev = edev->base.dev;
drivers/accel/ethosu/ethosu_job.c
307
spin_lock_init(&edev->fence_lock);
drivers/accel/ethosu/ethosu_job.c
308
ret = devm_mutex_init(dev, &edev->job_lock);
drivers/accel/ethosu/ethosu_job.c
311
ret = devm_mutex_init(dev, &edev->sched_lock);
drivers/accel/ethosu/ethosu_job.c
315
edev->irq = platform_get_irq(to_platform_device(dev), 0);
drivers/accel/ethosu/ethosu_job.c
316
if (edev->irq < 0)
drivers/accel/ethosu/ethosu_job.c
317
return edev->irq;
drivers/accel/ethosu/ethosu_job.c
319
ret = devm_request_threaded_irq(dev, edev->irq,
drivers/accel/ethosu/ethosu_job.c
323
edev);
drivers/accel/ethosu/ethosu_job.c
329
edev->fence_context = dma_fence_context_alloc(1);
drivers/accel/ethosu/ethosu_job.c
331
ret = drm_sched_init(&edev->sched, &args);
drivers/accel/ethosu/ethosu_job.c
340
drm_sched_fini(&edev->sched);
drivers/accel/ethosu/ethosu_job.c
351
struct ethosu_device *dev = ethosu_priv->edev;
drivers/accel/ethosu/ethosu_job.c
371
struct ethosu_device *edev = to_ethosu_device(dev);
drivers/accel/ethosu/ethosu_job.c
381
if (edev->npu_info.sram_size < job->sram_size)
drivers/accel/ethosu/ethosu_job.c
390
ejob->dev = edev;
drivers/devfreq/devfreq-event.c
106
bool devfreq_event_is_enabled(struct devfreq_event_dev *edev)
drivers/devfreq/devfreq-event.c
110
if (!edev || !edev->desc)
drivers/devfreq/devfreq-event.c
113
mutex_lock(&edev->lock);
drivers/devfreq/devfreq-event.c
115
if (edev->enable_count > 0)
drivers/devfreq/devfreq-event.c
118
mutex_unlock(&edev->lock);
drivers/devfreq/devfreq-event.c
131
int devfreq_event_set_event(struct devfreq_event_dev *edev)
drivers/devfreq/devfreq-event.c
135
if (!edev || !edev->desc)
drivers/devfreq/devfreq-event.c
138
if (!edev->desc->ops || !edev->desc->ops->set_event)
drivers/devfreq/devfreq-event.c
141
if (!devfreq_event_is_enabled(edev))
drivers/devfreq/devfreq-event.c
144
mutex_lock(&edev->lock);
drivers/devfreq/devfreq-event.c
145
ret = edev->desc->ops->set_event(edev);
drivers/devfreq/devfreq-event.c
146
mutex_unlock(&edev->lock);
drivers/devfreq/devfreq-event.c
160
int devfreq_event_get_event(struct devfreq_event_dev *edev,
drivers/devfreq/devfreq-event.c
165
if (!edev || !edev->desc)
drivers/devfreq/devfreq-event.c
168
if (!edev->desc->ops || !edev->desc->ops->get_event)
drivers/devfreq/devfreq-event.c
171
if (!devfreq_event_is_enabled(edev))
drivers/devfreq/devfreq-event.c
176
mutex_lock(&edev->lock);
drivers/devfreq/devfreq-event.c
177
ret = edev->desc->ops->get_event(edev, edata);
drivers/devfreq/devfreq-event.c
180
mutex_unlock(&edev->lock);
drivers/devfreq/devfreq-event.c
193
int devfreq_event_reset_event(struct devfreq_event_dev *edev)
drivers/devfreq/devfreq-event.c
197
if (!edev || !edev->desc)
drivers/devfreq/devfreq-event.c
200
if (!devfreq_event_is_enabled(edev))
drivers/devfreq/devfreq-event.c
203
mutex_lock(&edev->lock);
drivers/devfreq/devfreq-event.c
204
if (edev->desc->ops && edev->desc->ops->reset)
drivers/devfreq/devfreq-event.c
205
ret = edev->desc->ops->reset(edev);
drivers/devfreq/devfreq-event.c
206
mutex_unlock(&edev->lock);
drivers/devfreq/devfreq-event.c
225
struct devfreq_event_dev *edev;
drivers/devfreq/devfreq-event.c
235
list_for_each_entry(edev, &devfreq_event_list, node) {
drivers/devfreq/devfreq-event.c
236
if (edev->dev.parent && device_match_of_node(edev->dev.parent, node))
drivers/devfreq/devfreq-event.c
240
list_for_each_entry(edev, &devfreq_event_list, node) {
drivers/devfreq/devfreq-event.c
241
if (of_node_name_eq(node, edev->desc->name))
drivers/devfreq/devfreq-event.c
244
edev = NULL;
drivers/devfreq/devfreq-event.c
248
if (!edev)
drivers/devfreq/devfreq-event.c
251
return edev;
drivers/devfreq/devfreq-event.c
286
struct devfreq_event_dev *edev = to_devfreq_event(dev);
drivers/devfreq/devfreq-event.c
288
kfree(edev);
drivers/devfreq/devfreq-event.c
303
struct devfreq_event_dev *edev;
drivers/devfreq/devfreq-event.c
316
edev = kzalloc_obj(struct devfreq_event_dev);
drivers/devfreq/devfreq-event.c
317
if (!edev)
drivers/devfreq/devfreq-event.c
320
mutex_init(&edev->lock);
drivers/devfreq/devfreq-event.c
321
edev->desc = desc;
drivers/devfreq/devfreq-event.c
322
edev->enable_count = 0;
drivers/devfreq/devfreq-event.c
323
edev->dev.parent = dev;
drivers/devfreq/devfreq-event.c
324
edev->dev.class = devfreq_event_class;
drivers/devfreq/devfreq-event.c
325
edev->dev.release = devfreq_event_release_edev;
drivers/devfreq/devfreq-event.c
327
dev_set_name(&edev->dev, "event%d", atomic_inc_return(&event_no));
drivers/devfreq/devfreq-event.c
328
ret = device_register(&edev->dev);
drivers/devfreq/devfreq-event.c
330
put_device(&edev->dev);
drivers/devfreq/devfreq-event.c
333
dev_set_drvdata(&edev->dev, edev);
drivers/devfreq/devfreq-event.c
335
INIT_LIST_HEAD(&edev->node);
drivers/devfreq/devfreq-event.c
338
list_add(&edev->node, &devfreq_event_list);
drivers/devfreq/devfreq-event.c
341
return edev;
drivers/devfreq/devfreq-event.c
351
int devfreq_event_remove_edev(struct devfreq_event_dev *edev)
drivers/devfreq/devfreq-event.c
353
if (!edev)
drivers/devfreq/devfreq-event.c
356
WARN_ON(edev->enable_count);
drivers/devfreq/devfreq-event.c
359
list_del(&edev->node);
drivers/devfreq/devfreq-event.c
362
device_unregister(&edev->dev);
drivers/devfreq/devfreq-event.c
37
int devfreq_event_enable_edev(struct devfreq_event_dev *edev)
drivers/devfreq/devfreq-event.c
396
struct devfreq_event_dev **ptr, *edev;
drivers/devfreq/devfreq-event.c
403
edev = devfreq_event_add_edev(dev, desc);
drivers/devfreq/devfreq-event.c
404
if (IS_ERR(edev)) {
drivers/devfreq/devfreq-event.c
409
*ptr = edev;
drivers/devfreq/devfreq-event.c
41
if (!edev || !edev->desc)
drivers/devfreq/devfreq-event.c
412
return edev;
drivers/devfreq/devfreq-event.c
425
struct devfreq_event_dev *edev)
drivers/devfreq/devfreq-event.c
428
devm_devfreq_event_match, edev));
drivers/devfreq/devfreq-event.c
438
struct devfreq_event_dev *edev = to_devfreq_event(dev);
drivers/devfreq/devfreq-event.c
44
mutex_lock(&edev->lock);
drivers/devfreq/devfreq-event.c
440
if (!edev || !edev->desc)
drivers/devfreq/devfreq-event.c
443
return sprintf(buf, "%s\n", edev->desc->name);
drivers/devfreq/devfreq-event.c
45
if (edev->desc->ops && edev->desc->ops->enable
drivers/devfreq/devfreq-event.c
450
struct devfreq_event_dev *edev = to_devfreq_event(dev);
drivers/devfreq/devfreq-event.c
452
if (!edev || !edev->desc)
drivers/devfreq/devfreq-event.c
455
return sprintf(buf, "%d\n", edev->enable_count);
drivers/devfreq/devfreq-event.c
46
&& edev->enable_count == 0) {
drivers/devfreq/devfreq-event.c
47
ret = edev->desc->ops->enable(edev);
drivers/devfreq/devfreq-event.c
51
edev->enable_count++;
drivers/devfreq/devfreq-event.c
53
mutex_unlock(&edev->lock);
drivers/devfreq/devfreq-event.c
69
int devfreq_event_disable_edev(struct devfreq_event_dev *edev)
drivers/devfreq/devfreq-event.c
73
if (!edev || !edev->desc)
drivers/devfreq/devfreq-event.c
76
mutex_lock(&edev->lock);
drivers/devfreq/devfreq-event.c
77
if (edev->enable_count <= 0) {
drivers/devfreq/devfreq-event.c
78
dev_warn(&edev->dev, "unbalanced enable_count\n");
drivers/devfreq/devfreq-event.c
83
if (edev->desc->ops && edev->desc->ops->disable
drivers/devfreq/devfreq-event.c
84
&& edev->enable_count == 1) {
drivers/devfreq/devfreq-event.c
85
ret = edev->desc->ops->disable(edev);
drivers/devfreq/devfreq-event.c
89
edev->enable_count--;
drivers/devfreq/devfreq-event.c
91
mutex_unlock(&edev->lock);
drivers/devfreq/event/exynos-nocp.c
143
static int exynos_nocp_get_event(struct devfreq_event_dev *edev,
drivers/devfreq/event/exynos-nocp.c
146
struct exynos_nocp *nocp = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/exynos-nocp.c
170
dev_dbg(&edev->dev, "%s (event: %ld/%ld)\n", edev->desc->name,
drivers/devfreq/event/exynos-nocp.c
20
struct devfreq_event_dev *edev;
drivers/devfreq/event/exynos-nocp.c
258
nocp->edev = devm_devfreq_event_add_edev(&pdev->dev, &nocp->desc);
drivers/devfreq/event/exynos-nocp.c
259
if (IS_ERR(nocp->edev)) {
drivers/devfreq/event/exynos-nocp.c
262
return PTR_ERR(nocp->edev);
drivers/devfreq/event/exynos-nocp.c
32
static int exynos_nocp_set_event(struct devfreq_event_dev *edev)
drivers/devfreq/event/exynos-nocp.c
34
struct exynos_nocp *nocp = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/exynos-ppmu.c
120
static int exynos_ppmu_find_ppmu_id(struct devfreq_event_dev *edev)
drivers/devfreq/event/exynos-ppmu.c
122
return __exynos_ppmu_find_ppmu_id(edev->desc->name);
drivers/devfreq/event/exynos-ppmu.c
128
static int exynos_ppmu_disable(struct devfreq_event_dev *edev)
drivers/devfreq/event/exynos-ppmu.c
130
struct exynos_ppmu *info = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/exynos-ppmu.c
157
static int exynos_ppmu_set_event(struct devfreq_event_dev *edev)
drivers/devfreq/event/exynos-ppmu.c
159
struct exynos_ppmu *info = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/exynos-ppmu.c
160
int id = exynos_ppmu_find_ppmu_id(edev);
drivers/devfreq/event/exynos-ppmu.c
179
edev->desc->event_type);
drivers/devfreq/event/exynos-ppmu.c
201
static int exynos_ppmu_get_event(struct devfreq_event_dev *edev,
drivers/devfreq/event/exynos-ppmu.c
204
struct exynos_ppmu *info = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/exynos-ppmu.c
205
int id = exynos_ppmu_find_ppmu_id(edev);
drivers/devfreq/event/exynos-ppmu.c
265
dev_dbg(&edev->dev, "%s (event: %ld/%ld)\n", edev->desc->name,
drivers/devfreq/event/exynos-ppmu.c
280
static int exynos_ppmu_v2_disable(struct devfreq_event_dev *edev)
drivers/devfreq/event/exynos-ppmu.c
282
struct exynos_ppmu *info = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/exynos-ppmu.c
34
struct devfreq_event_dev **edev;
drivers/devfreq/event/exynos-ppmu.c
374
static int exynos_ppmu_v2_set_event(struct devfreq_event_dev *edev)
drivers/devfreq/event/exynos-ppmu.c
376
struct exynos_ppmu *info = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/exynos-ppmu.c
378
int id = exynos_ppmu_find_ppmu_id(edev);
drivers/devfreq/event/exynos-ppmu.c
393
edev->desc->event_type);
drivers/devfreq/event/exynos-ppmu.c
419
static int exynos_ppmu_v2_get_event(struct devfreq_event_dev *edev,
drivers/devfreq/event/exynos-ppmu.c
422
struct exynos_ppmu *info = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/exynos-ppmu.c
423
int id = exynos_ppmu_find_ppmu_id(edev);
drivers/devfreq/event/exynos-ppmu.c
480
dev_dbg(&edev->dev, "%25s (load: %ld / %ld)\n", edev->desc->name,
drivers/devfreq/event/exynos-ppmu.c
647
struct devfreq_event_dev **edev;
drivers/devfreq/event/exynos-ppmu.c
667
info->edev = devm_kzalloc(&pdev->dev, size, GFP_KERNEL);
drivers/devfreq/event/exynos-ppmu.c
668
if (!info->edev)
drivers/devfreq/event/exynos-ppmu.c
671
edev = info->edev;
drivers/devfreq/event/exynos-ppmu.c
675
edev[i] = devm_devfreq_event_add_edev(&pdev->dev, &desc[i]);
drivers/devfreq/event/exynos-ppmu.c
676
if (IS_ERR(edev[i])) {
drivers/devfreq/event/exynos-ppmu.c
679
return PTR_ERR(edev[i]);
drivers/devfreq/event/rockchip-dfi.c
156
dev_err(&dfi->edev->dev,
drivers/devfreq/event/rockchip-dfi.c
161
dev_err(&dfi->edev->dev, "unsupported memory type 0x%X\n",
drivers/devfreq/event/rockchip-dfi.c
183
dev_err(&dfi->edev->dev, "failed to enable dfi clk: %d\n", ret);
drivers/devfreq/event/rockchip-dfi.c
267
static int rockchip_dfi_event_disable(struct devfreq_event_dev *edev)
drivers/devfreq/event/rockchip-dfi.c
269
struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/rockchip-dfi.c
276
static int rockchip_dfi_event_enable(struct devfreq_event_dev *edev)
drivers/devfreq/event/rockchip-dfi.c
278
struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/rockchip-dfi.c
283
static int rockchip_dfi_set_event(struct devfreq_event_dev *edev)
drivers/devfreq/event/rockchip-dfi.c
288
static int rockchip_dfi_get_event(struct devfreq_event_dev *edev,
drivers/devfreq/event/rockchip-dfi.c
291
struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev);
drivers/devfreq/event/rockchip-dfi.c
861
dfi->edev = devm_devfreq_event_add_edev(&pdev->dev, desc);
drivers/devfreq/event/rockchip-dfi.c
862
if (IS_ERR(dfi->edev)) {
drivers/devfreq/event/rockchip-dfi.c
865
return PTR_ERR(dfi->edev);
drivers/devfreq/event/rockchip-dfi.c
90
struct devfreq_event_dev *edev;
drivers/devfreq/exynos-bus.c
202
size = sizeof(*bus->edev) * count;
drivers/devfreq/exynos-bus.c
203
bus->edev = devm_kzalloc(dev, size, GFP_KERNEL);
drivers/devfreq/exynos-bus.c
204
if (!bus->edev) {
drivers/devfreq/exynos-bus.c
210
bus->edev[i] = devfreq_event_get_edev_by_phandle(dev,
drivers/devfreq/exynos-bus.c
212
if (IS_ERR(bus->edev[i])) {
drivers/devfreq/exynos-bus.c
30
struct devfreq_event_dev **edev;
drivers/devfreq/exynos-bus.c
50
if (!bus->edev[i]) \
drivers/devfreq/exynos-bus.c
52
ret = devfreq_event_##ops(bus->edev[i]); \
drivers/devfreq/exynos-bus.c
71
if (!bus->edev[i])
drivers/devfreq/exynos-bus.c
74
ret = devfreq_event_get_event(bus->edev[i], &event_data);
drivers/devfreq/rk3399_dmc.c
226
ret = devfreq_event_get_event(dmcfreq->edev, &edata);
drivers/devfreq/rk3399_dmc.c
251
ret = devfreq_event_disable_edev(dmcfreq->edev);
drivers/devfreq/rk3399_dmc.c
271
ret = devfreq_event_enable_edev(dmcfreq->edev);
drivers/devfreq/rk3399_dmc.c
361
data->edev = devfreq_event_get_edev_by_phandle(dev, "devfreq-events", 0);
drivers/devfreq/rk3399_dmc.c
362
if (IS_ERR(data->edev))
drivers/devfreq/rk3399_dmc.c
365
ret = devfreq_event_enable_edev(data->edev);
drivers/devfreq/rk3399_dmc.c
457
devfreq_event_disable_edev(data->edev);
drivers/devfreq/rk3399_dmc.c
46
struct devfreq_event_dev *edev;
drivers/devfreq/rk3399_dmc.c
466
devfreq_event_disable_edev(dmcfreq->edev);
drivers/edac/skx_base.c
130
d->imc[i].chan[m->mtype - ERRCHAN0].edev = pdev;
drivers/edac/skx_base.c
241
struct pci_dev *edev;
drivers/edac/skx_base.c
244
edev = res->dev->imc[res->imc].chan[res->channel].edev;
drivers/edac/skx_base.c
246
pci_read_config_dword(edev, 0x154, &log0);
drivers/edac/skx_base.c
247
pci_read_config_dword(edev, 0x148, &log1);
drivers/edac/skx_base.c
248
pci_read_config_dword(edev, 0x150, &log2);
drivers/edac/skx_base.c
249
pci_read_config_dword(edev, 0x15c, &log3);
drivers/edac/skx_base.c
250
pci_read_config_dword(edev, 0x114, &log4);
drivers/edac/skx_base.c
255
pci_read_config_dword(edev, 0x104, &corr0);
drivers/edac/skx_base.c
256
pci_read_config_dword(edev, 0x108, &corr1);
drivers/edac/skx_base.c
257
pci_read_config_dword(edev, 0x10c, &corr2);
drivers/edac/skx_base.c
258
pci_read_config_dword(edev, 0x110, &corr3);
drivers/edac/skx_common.h
169
struct pci_dev *edev;
drivers/eisa/eisa-bus.c
110
struct eisa_device *edev = to_eisa_device(dev);
drivers/eisa/eisa-bus.c
118
if (!strcmp(eids->sig, edev->id.sig) &&
drivers/eisa/eisa-bus.c
119
edev->state & EISA_CONFIG_ENABLED) {
drivers/eisa/eisa-bus.c
120
edev->id.driver_data = eids->driver_data;
drivers/eisa/eisa-bus.c
132
const struct eisa_device *edev = to_eisa_device(dev);
drivers/eisa/eisa-bus.c
134
add_uevent_var(env, "MODALIAS=" EISA_DEVICE_MODALIAS_FMT, edev->id.sig);
drivers/eisa/eisa-bus.c
161
struct eisa_device *edev = to_eisa_device(dev);
drivers/eisa/eisa-bus.c
162
return sprintf(buf, "%s\n", edev->id.sig);
drivers/eisa/eisa-bus.c
169
struct eisa_device *edev = to_eisa_device(dev);
drivers/eisa/eisa-bus.c
170
return sprintf(buf, "%d\n", edev->state & EISA_CONFIG_ENABLED);
drivers/eisa/eisa-bus.c
177
struct eisa_device *edev = to_eisa_device(dev);
drivers/eisa/eisa-bus.c
178
return sprintf(buf, EISA_DEVICE_MODALIAS_FMT "\n", edev->id.sig);
drivers/eisa/eisa-bus.c
183
struct eisa_device *edev,
drivers/eisa/eisa-bus.c
196
memcpy(edev->id.sig, sig, EISA_SIG_LEN);
drivers/eisa/eisa-bus.c
197
edev->slot = slot;
drivers/eisa/eisa-bus.c
198
edev->state = inb(SLOT_ADDRESS(root, slot) + EISA_CONFIG_OFFSET)
drivers/eisa/eisa-bus.c
200
edev->base_addr = SLOT_ADDRESS(root, slot);
drivers/eisa/eisa-bus.c
201
edev->dma_mask = root->dma_mask; /* Default DMA mask */
drivers/eisa/eisa-bus.c
202
eisa_name_device(edev);
drivers/eisa/eisa-bus.c
203
edev->dev.parent = root->dev;
drivers/eisa/eisa-bus.c
204
edev->dev.bus = &eisa_bus_type;
drivers/eisa/eisa-bus.c
205
edev->dev.dma_mask = &edev->dma_mask;
drivers/eisa/eisa-bus.c
206
edev->dev.coherent_dma_mask = edev->dma_mask;
drivers/eisa/eisa-bus.c
207
dev_set_name(&edev->dev, "%02X:%02X", root->bus_nr, slot);
drivers/eisa/eisa-bus.c
211
edev->res[i].name = edev->pretty_name;
drivers/eisa/eisa-bus.c
213
edev->res[i].name = edev->id.sig;
drivers/eisa/eisa-bus.c
217
if (is_forced_dev(enable_dev, enable_dev_count, root, edev))
drivers/eisa/eisa-bus.c
218
edev->state = EISA_CONFIG_ENABLED | EISA_CONFIG_FORCED;
drivers/eisa/eisa-bus.c
220
if (is_forced_dev(disable_dev, disable_dev_count, root, edev))
drivers/eisa/eisa-bus.c
221
edev->state = EISA_CONFIG_FORCED;
drivers/eisa/eisa-bus.c
226
static int __init eisa_register_device(struct eisa_device *edev)
drivers/eisa/eisa-bus.c
228
int rc = device_register(&edev->dev);
drivers/eisa/eisa-bus.c
230
put_device(&edev->dev);
drivers/eisa/eisa-bus.c
234
rc = device_create_file(&edev->dev, &dev_attr_signature);
drivers/eisa/eisa-bus.c
237
rc = device_create_file(&edev->dev, &dev_attr_enabled);
drivers/eisa/eisa-bus.c
240
rc = device_create_file(&edev->dev, &dev_attr_modalias);
drivers/eisa/eisa-bus.c
247
device_remove_file(&edev->dev, &dev_attr_enabled);
drivers/eisa/eisa-bus.c
249
device_remove_file(&edev->dev, &dev_attr_signature);
drivers/eisa/eisa-bus.c
251
device_unregister(&edev->dev);
drivers/eisa/eisa-bus.c
256
struct eisa_device *edev,
drivers/eisa/eisa-bus.c
269
edev->res[i].start = edev->res[i].end = 0;
drivers/eisa/eisa-bus.c
274
edev->res[i].name = NULL;
drivers/eisa/eisa-bus.c
275
edev->res[i].start = SLOT_ADDRESS(root, slot)
drivers/eisa/eisa-bus.c
277
edev->res[i].end = edev->res[i].start + 0xff;
drivers/eisa/eisa-bus.c
278
edev->res[i].flags = IORESOURCE_IO;
drivers/eisa/eisa-bus.c
280
edev->res[i].name = NULL;
drivers/eisa/eisa-bus.c
281
edev->res[i].start = SLOT_ADDRESS(root, slot)
drivers/eisa/eisa-bus.c
283
edev->res[i].end = edev->res[i].start + 3;
drivers/eisa/eisa-bus.c
284
edev->res[i].flags = IORESOURCE_IO | IORESOURCE_BUSY;
drivers/eisa/eisa-bus.c
287
if (request_resource(root->res, &edev->res[i]))
drivers/eisa/eisa-bus.c
295
release_resource(&edev->res[i]);
drivers/eisa/eisa-bus.c
300
static void __init eisa_release_resources(struct eisa_device *edev)
drivers/eisa/eisa-bus.c
305
if (edev->res[i].start || edev->res[i].end)
drivers/eisa/eisa-bus.c
306
release_resource(&edev->res[i]);
drivers/eisa/eisa-bus.c
312
struct eisa_device *edev;
drivers/eisa/eisa-bus.c
320
edev = kzalloc_obj(*edev);
drivers/eisa/eisa-bus.c
321
if (!edev)
drivers/eisa/eisa-bus.c
324
if (eisa_request_resources(root, edev, 0)) {
drivers/eisa/eisa-bus.c
327
kfree(edev);
drivers/eisa/eisa-bus.c
333
if (eisa_init_device(root, edev, 0)) {
drivers/eisa/eisa-bus.c
334
eisa_release_resources(edev);
drivers/eisa/eisa-bus.c
335
kfree(edev);
drivers/eisa/eisa-bus.c
341
dev_info(&edev->dev, "EISA: Mainboard %s detected\n", edev->id.sig);
drivers/eisa/eisa-bus.c
343
if (eisa_register_device(edev)) {
drivers/eisa/eisa-bus.c
344
dev_err(&edev->dev, "EISA: Failed to register %s\n",
drivers/eisa/eisa-bus.c
345
edev->id.sig);
drivers/eisa/eisa-bus.c
346
eisa_release_resources(edev);
drivers/eisa/eisa-bus.c
347
kfree(edev);
drivers/eisa/eisa-bus.c
353
edev = kzalloc_obj(*edev);
drivers/eisa/eisa-bus.c
354
if (!edev) {
drivers/eisa/eisa-bus.c
360
if (eisa_request_resources(root, edev, i)) {
drivers/eisa/eisa-bus.c
364
kfree(edev);
drivers/eisa/eisa-bus.c
368
if (eisa_init_device(root, edev, i)) {
drivers/eisa/eisa-bus.c
369
eisa_release_resources(edev);
drivers/eisa/eisa-bus.c
370
kfree(edev);
drivers/eisa/eisa-bus.c
374
if (edev->state == (EISA_CONFIG_ENABLED | EISA_CONFIG_FORCED))
drivers/eisa/eisa-bus.c
376
else if (edev->state == EISA_CONFIG_FORCED)
drivers/eisa/eisa-bus.c
378
else if (edev->state == 0)
drivers/eisa/eisa-bus.c
383
dev_info(&edev->dev, "EISA: slot %d: %s detected%s\n", i,
drivers/eisa/eisa-bus.c
384
edev->id.sig, enabled_str);
drivers/eisa/eisa-bus.c
388
if (eisa_register_device(edev)) {
drivers/eisa/eisa-bus.c
389
dev_err(&edev->dev, "EISA: Failed to register %s\n",
drivers/eisa/eisa-bus.c
390
edev->id.sig);
drivers/eisa/eisa-bus.c
391
eisa_release_resources(edev);
drivers/eisa/eisa-bus.c
392
kfree(edev);
drivers/eisa/eisa-bus.c
44
struct eisa_device *edev)
drivers/eisa/eisa-bus.c
49
x = (root->bus_nr << 8) | edev->slot;
drivers/eisa/eisa-bus.c
57
static void __init eisa_name_device(struct eisa_device *edev)
drivers/eisa/eisa-bus.c
62
if (!strcmp(edev->id.sig, eisa_table[i].id.sig)) {
drivers/eisa/eisa-bus.c
63
strscpy(edev->pretty_name,
drivers/eisa/eisa-bus.c
65
sizeof(edev->pretty_name));
drivers/eisa/eisa-bus.c
71
sprintf(edev->pretty_name, "EISA device %.7s", edev->id.sig);
drivers/extcon/devres.c
100
devm_extcon_dev_match, edev));
drivers/extcon/devres.c
118
int devm_extcon_dev_register(struct device *dev, struct extcon_dev *edev)
drivers/extcon/devres.c
127
ret = extcon_dev_register(edev);
drivers/extcon/devres.c
133
*ptr = edev;
drivers/extcon/devres.c
148
void devm_extcon_dev_unregister(struct device *dev, struct extcon_dev *edev)
drivers/extcon/devres.c
151
devm_extcon_dev_match, edev));
drivers/extcon/devres.c
172
int devm_extcon_register_notifier(struct device *dev, struct extcon_dev *edev,
drivers/extcon/devres.c
183
ret = extcon_register_notifier(edev, id, nb);
drivers/extcon/devres.c
189
ptr->edev = edev;
drivers/extcon/devres.c
207
struct extcon_dev *edev, unsigned int id,
drivers/extcon/devres.c
211
devm_extcon_dev_match, edev));
drivers/extcon/devres.c
228
int devm_extcon_register_notifier_all(struct device *dev, struct extcon_dev *edev,
drivers/extcon/devres.c
239
ret = extcon_register_notifier_all(edev, nb);
drivers/extcon/devres.c
245
ptr->edev = edev;
drivers/extcon/devres.c
261
struct extcon_dev *edev,
drivers/extcon/devres.c
265
devm_extcon_dev_match, edev));
drivers/extcon/devres.c
33
struct extcon_dev *edev;
drivers/extcon/devres.c
42
extcon_unregister_notifier(this->edev, this->id, this->nb);
drivers/extcon/devres.c
49
extcon_unregister_notifier_all(this->edev, this->nb);
drivers/extcon/devres.c
68
struct extcon_dev **ptr, *edev;
drivers/extcon/devres.c
74
edev = extcon_dev_allocate(supported_cable);
drivers/extcon/devres.c
75
if (IS_ERR(edev)) {
drivers/extcon/devres.c
77
return edev;
drivers/extcon/devres.c
80
edev->dev.parent = dev;
drivers/extcon/devres.c
82
*ptr = edev;
drivers/extcon/devres.c
85
return edev;
drivers/extcon/devres.c
97
void devm_extcon_dev_free(struct device *dev, struct extcon_dev *edev)
drivers/extcon/extcon-adc-jack.c
113
data->edev = devm_extcon_dev_allocate(&pdev->dev, pdata->cable_names);
drivers/extcon/extcon-adc-jack.c
114
if (IS_ERR(data->edev)) {
drivers/extcon/extcon-adc-jack.c
140
err = devm_extcon_dev_register(&pdev->dev, data->edev);
drivers/extcon/extcon-adc-jack.c
43
struct extcon_dev *edev;
drivers/extcon/extcon-adc-jack.c
76
extcon_set_state_sync(data->edev, def->id, true);
drivers/extcon/extcon-adc-jack.c
84
extcon_set_state_sync(data->edev, def->id, false);
drivers/extcon/extcon-axp288.c
103
struct extcon_dev *edev;
drivers/extcon/extcon-axp288.c
263
extcon_set_state_sync(info->edev, info->previous_cable, false);
drivers/extcon/extcon-axp288.c
265
extcon_set_state_sync(info->edev, EXTCON_USB, false);
drivers/extcon/extcon-axp288.c
268
extcon_set_state_sync(info->edev, cable, vbus_attach);
drivers/extcon/extcon-axp288.c
270
extcon_set_state_sync(info->edev, EXTCON_USB,
drivers/extcon/extcon-axp288.c
417
info->edev = devm_extcon_dev_allocate(&pdev->dev,
drivers/extcon/extcon-axp288.c
419
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-axp288.c
421
return PTR_ERR(info->edev);
drivers/extcon/extcon-axp288.c
425
ret = devm_extcon_dev_register(&pdev->dev, info->edev);
drivers/extcon/extcon-fsa9480.c
109
struct extcon_dev *edev;
drivers/extcon/extcon-fsa9480.c
212
extcon_set_state_sync(usbsw->edev, cable, attached);
drivers/extcon/extcon-fsa9480.c
278
info->edev = devm_extcon_dev_allocate(info->dev,
drivers/extcon/extcon-fsa9480.c
280
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-fsa9480.c
286
ret = devm_extcon_dev_register(info->dev, info->edev);
drivers/extcon/extcon-gpio.c
106
data->edev = devm_extcon_dev_allocate(dev, &data->extcon_id);
drivers/extcon/extcon-gpio.c
107
if (IS_ERR(data->edev)) {
drivers/extcon/extcon-gpio.c
112
ret = devm_extcon_dev_register(dev, data->edev);
drivers/extcon/extcon-gpio.c
36
struct extcon_dev *edev;
drivers/extcon/extcon-gpio.c
53
extcon_set_state_sync(data->edev, data->extcon_id, state);
drivers/extcon/extcon-intel-cht-wc.c
107
struct extcon_dev *edev;
drivers/extcon/extcon-intel-cht-wc.c
272
extcon_set_state_sync(ext->edev, cable, state);
drivers/extcon/extcon-intel-cht-wc.c
274
extcon_set_state_sync(ext->edev, EXTCON_USB, state);
drivers/extcon/extcon-intel-cht-wc.c
328
extcon_set_state_sync(ext->edev, EXTCON_USB_HOST, ext->usb_host);
drivers/extcon/extcon-intel-cht-wc.c
513
ext->edev = devm_extcon_dev_allocate(ext->dev, cht_wc_extcon_cables);
drivers/extcon/extcon-intel-cht-wc.c
514
if (IS_ERR(ext->edev))
drivers/extcon/extcon-intel-cht-wc.c
515
return PTR_ERR(ext->edev);
drivers/extcon/extcon-intel-cht-wc.c
569
ret = devm_extcon_dev_register(ext->dev, ext->edev);
drivers/extcon/extcon-intel-int3496.c
101
extcon_set_state_sync(data->edev, EXTCON_USB_HOST, !id);
drivers/extcon/extcon-intel-int3496.c
162
data->edev = devm_extcon_dev_allocate(dev, int3496_cable);
drivers/extcon/extcon-intel-int3496.c
163
if (IS_ERR(data->edev))
drivers/extcon/extcon-intel-int3496.c
166
ret = devm_extcon_dev_register(dev, data->edev);
drivers/extcon/extcon-intel-int3496.c
29
struct extcon_dev *edev;
drivers/extcon/extcon-intel-mrfld.c
147
extcon_set_state_sync(data->edev, EXTCON_USB_HOST, usb_host);
drivers/extcon/extcon-intel-mrfld.c
215
data->edev = devm_extcon_dev_allocate(dev, mrfld_extcon_cable);
drivers/extcon/extcon-intel-mrfld.c
216
if (IS_ERR(data->edev))
drivers/extcon/extcon-intel-mrfld.c
217
return PTR_ERR(data->edev);
drivers/extcon/extcon-intel-mrfld.c
219
ret = devm_extcon_dev_register(dev, data->edev);
drivers/extcon/extcon-intel-mrfld.c
52
struct extcon_dev *edev;
drivers/extcon/extcon-lc824206xa.c
111
struct extcon_dev *edev;
drivers/extcon/extcon-lc824206xa.c
333
extcon_set_state_sync(data->edev, data->previous_cable, false);
drivers/extcon/extcon-lc824206xa.c
334
extcon_set_state_sync(data->edev, data->cable, true);
drivers/extcon/extcon-lc824206xa.c
453
data->edev = devm_extcon_dev_allocate(dev, lc824206xa_cables);
drivers/extcon/extcon-lc824206xa.c
454
if (IS_ERR(data->edev))
drivers/extcon/extcon-lc824206xa.c
455
return PTR_ERR(data->edev);
drivers/extcon/extcon-lc824206xa.c
457
ret = devm_extcon_dev_register(dev, data->edev);
drivers/extcon/extcon-max14526.c
162
extcon_set_state_sync(priv->edev, priv->cable, false);
drivers/extcon/extcon-max14526.c
189
extcon_set_state_sync(priv->edev, priv->cable, true);
drivers/extcon/extcon-max14526.c
239
priv->edev = devm_extcon_dev_allocate(dev, max14526_extcon_cable);
drivers/extcon/extcon-max14526.c
240
if (IS_ERR(priv->edev))
drivers/extcon/extcon-max14526.c
241
return dev_err_probe(dev, (IS_ERR(priv->edev)),
drivers/extcon/extcon-max14526.c
244
ret = devm_extcon_dev_register(dev, priv->edev);
drivers/extcon/extcon-max14526.c
88
struct extcon_dev *edev;
drivers/extcon/extcon-max14577.c
351
extcon_set_state_sync(info->edev, EXTCON_JIG, attached);
drivers/extcon/extcon-max14577.c
448
extcon_set_state_sync(info->edev, EXTCON_USB, attached);
drivers/extcon/extcon-max14577.c
449
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SDP,
drivers/extcon/extcon-max14577.c
453
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_DCP,
drivers/extcon/extcon-max14577.c
457
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_CDP,
drivers/extcon/extcon-max14577.c
461
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SLOW,
drivers/extcon/extcon-max14577.c
465
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_FAST,
drivers/extcon/extcon-max14577.c
487
if (!info->edev)
drivers/extcon/extcon-max14577.c
716
info->edev = devm_extcon_dev_allocate(&pdev->dev,
drivers/extcon/extcon-max14577.c
718
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-max14577.c
720
return PTR_ERR(info->edev);
drivers/extcon/extcon-max14577.c
723
ret = devm_extcon_dev_register(&pdev->dev, info->edev);
drivers/extcon/extcon-max14577.c
73
struct extcon_dev *edev;
drivers/extcon/extcon-max3355.c
17
struct extcon_dev *edev;
drivers/extcon/extcon-max3355.c
39
extcon_set_state_sync(data->edev, EXTCON_USB_HOST, false);
drivers/extcon/extcon-max3355.c
40
extcon_set_state_sync(data->edev, EXTCON_USB, true);
drivers/extcon/extcon-max3355.c
47
extcon_set_state_sync(data->edev, EXTCON_USB, false);
drivers/extcon/extcon-max3355.c
48
extcon_set_state_sync(data->edev, EXTCON_USB_HOST, true);
drivers/extcon/extcon-max3355.c
79
data->edev = devm_extcon_dev_allocate(&pdev->dev, max3355_cable);
drivers/extcon/extcon-max3355.c
80
if (IS_ERR(data->edev)) {
drivers/extcon/extcon-max3355.c
82
return PTR_ERR(data->edev);
drivers/extcon/extcon-max3355.c
85
err = devm_extcon_dev_register(&pdev->dev, data->edev);
drivers/extcon/extcon-max77693.c
1160
info->edev = devm_extcon_dev_allocate(&pdev->dev,
drivers/extcon/extcon-max77693.c
1162
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-max77693.c
1164
return PTR_ERR(info->edev);
drivers/extcon/extcon-max77693.c
1167
ret = devm_extcon_dev_register(&pdev->dev, info->edev);
drivers/extcon/extcon-max77693.c
501
extcon_set_state_sync(info->edev, EXTCON_DOCK, attached);
drivers/extcon/extcon-max77693.c
502
extcon_set_state_sync(info->edev, EXTCON_DISP_MHL, attached);
drivers/extcon/extcon-max77693.c
510
extcon_set_state_sync(info->edev, EXTCON_USB, false);
drivers/extcon/extcon-max77693.c
511
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SDP,
drivers/extcon/extcon-max77693.c
526
extcon_set_state_sync(info->edev, dock_id, attached);
drivers/extcon/extcon-max77693.c
592
extcon_set_state_sync(info->edev, EXTCON_USB_HOST, attached);
drivers/extcon/extcon-max77693.c
600
extcon_set_state_sync(info->edev, EXTCON_USB, attached);
drivers/extcon/extcon-max77693.c
601
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SDP,
drivers/extcon/extcon-max77693.c
607
extcon_set_state_sync(info->edev, EXTCON_DISP_MHL, attached);
drivers/extcon/extcon-max77693.c
649
extcon_set_state_sync(info->edev, EXTCON_JIG, attached);
drivers/extcon/extcon-max77693.c
69
struct extcon_dev *edev;
drivers/extcon/extcon-max77693.c
803
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_DCP,
drivers/extcon/extcon-max77693.c
805
extcon_set_state_sync(info->edev, EXTCON_DISP_MHL,
drivers/extcon/extcon-max77693.c
829
extcon_set_state_sync(info->edev, EXTCON_USB,
drivers/extcon/extcon-max77693.c
831
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SDP,
drivers/extcon/extcon-max77693.c
835
extcon_set_state_sync(info->edev, EXTCON_DOCK,
drivers/extcon/extcon-max77693.c
864
extcon_set_state_sync(info->edev, EXTCON_DOCK,
drivers/extcon/extcon-max77693.c
866
extcon_set_state_sync(info->edev, EXTCON_DISP_MHL,
drivers/extcon/extcon-max77693.c
900
extcon_set_state_sync(info->edev, EXTCON_USB,
drivers/extcon/extcon-max77693.c
902
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SDP,
drivers/extcon/extcon-max77693.c
907
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_DCP,
drivers/extcon/extcon-max77693.c
913
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_CDP,
drivers/extcon/extcon-max77693.c
917
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SLOW,
drivers/extcon/extcon-max77693.c
921
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_FAST,
drivers/extcon/extcon-max77693.c
943
if (!info->edev)
drivers/extcon/extcon-max77843.c
32
struct extcon_dev *edev;
drivers/extcon/extcon-max77843.c
387
extcon_set_state_sync(info->edev, EXTCON_USB_HOST, attached);
drivers/extcon/extcon-max77843.c
398
extcon_set_state_sync(info->edev, EXTCON_DISP_MHL, attached);
drivers/extcon/extcon-max77843.c
434
extcon_set_state_sync(info->edev, EXTCON_JIG, attached);
drivers/extcon/extcon-max77843.c
452
extcon_set_state_sync(info->edev, EXTCON_DISP_MHL, attached);
drivers/extcon/extcon-max77843.c
453
extcon_set_state_sync(info->edev, EXTCON_USB_HOST, attached);
drivers/extcon/extcon-max77843.c
454
extcon_set_state_sync(info->edev, EXTCON_DOCK, attached);
drivers/extcon/extcon-max77843.c
552
extcon_set_state_sync(info->edev, EXTCON_USB, attached);
drivers/extcon/extcon-max77843.c
553
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SDP,
drivers/extcon/extcon-max77843.c
563
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_CDP,
drivers/extcon/extcon-max77843.c
573
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_DCP,
drivers/extcon/extcon-max77843.c
583
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SLOW,
drivers/extcon/extcon-max77843.c
593
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_FAST,
drivers/extcon/extcon-max77843.c
602
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_DCP,
drivers/extcon/extcon-max77843.c
605
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_DCP,
drivers/extcon/extcon-max77843.c
609
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_DCP, attached);
drivers/extcon/extcon-max77843.c
843
info->edev = devm_extcon_dev_allocate(&pdev->dev,
drivers/extcon/extcon-max77843.c
845
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-max77843.c
847
ret = PTR_ERR(info->edev);
drivers/extcon/extcon-max77843.c
851
ret = devm_extcon_dev_register(&pdev->dev, info->edev);
drivers/extcon/extcon-max8997.c
113
struct extcon_dev *edev;
drivers/extcon/extcon-max8997.c
325
extcon_set_state_sync(info->edev, EXTCON_USB_HOST, attached);
drivers/extcon/extcon-max8997.c
328
extcon_set_state_sync(info->edev, EXTCON_USB, attached);
drivers/extcon/extcon-max8997.c
329
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SDP,
drivers/extcon/extcon-max8997.c
355
extcon_set_state_sync(info->edev, EXTCON_DOCK, attached);
drivers/extcon/extcon-max8997.c
378
extcon_set_state_sync(info->edev, EXTCON_JIG, attached);
drivers/extcon/extcon-max8997.c
400
extcon_set_state_sync(info->edev, EXTCON_DISP_MHL, attached);
drivers/extcon/extcon-max8997.c
483
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_CDP,
drivers/extcon/extcon-max8997.c
487
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_DCP,
drivers/extcon/extcon-max8997.c
491
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SLOW,
drivers/extcon/extcon-max8997.c
495
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_FAST,
drivers/extcon/extcon-max8997.c
515
if (!info->edev)
drivers/extcon/extcon-max8997.c
682
info->edev = devm_extcon_dev_allocate(&pdev->dev, max8997_extcon_cable);
drivers/extcon/extcon-max8997.c
683
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-max8997.c
685
return PTR_ERR(info->edev);
drivers/extcon/extcon-max8997.c
688
ret = devm_extcon_dev_register(&pdev->dev, info->edev);
drivers/extcon/extcon-palmas.c
103
extcon_set_state_sync(edev, EXTCON_USB_HOST, false);
drivers/extcon/extcon-palmas.c
108
extcon_set_state_sync(edev, EXTCON_USB_HOST, true);
drivers/extcon/extcon-palmas.c
121
struct extcon_dev *edev = palmas_usb->edev;
drivers/extcon/extcon-palmas.c
129
extcon_set_state_sync(edev, EXTCON_USB_HOST, false);
drivers/extcon/extcon-palmas.c
132
extcon_set_state_sync(edev, EXTCON_USB_HOST, true);
drivers/extcon/extcon-palmas.c
255
palmas_usb->edev = devm_extcon_dev_allocate(&pdev->dev,
drivers/extcon/extcon-palmas.c
257
if (IS_ERR(palmas_usb->edev)) {
drivers/extcon/extcon-palmas.c
262
status = devm_extcon_dev_register(&pdev->dev, palmas_usb->edev);
drivers/extcon/extcon-palmas.c
44
struct extcon_dev *edev = palmas_usb->edev;
drivers/extcon/extcon-palmas.c
53
extcon_set_state_sync(edev, EXTCON_USB, true);
drivers/extcon/extcon-palmas.c
62
extcon_set_state_sync(edev, EXTCON_USB, false);
drivers/extcon/extcon-palmas.c
77
struct extcon_dev *edev = palmas_usb->edev;
drivers/extcon/extcon-palmas.c
90
extcon_set_state_sync(edev, EXTCON_USB_HOST, true);
drivers/extcon/extcon-palmas.c
98
extcon_set_state_sync(edev, EXTCON_USB_HOST, false);
drivers/extcon/extcon-ptn5150.c
101
extcon_set_state_sync(info->edev, EXTCON_USB_HOST, true);
drivers/extcon/extcon-ptn5150.c
123
if (!info->edev)
drivers/extcon/extcon-ptn5150.c
143
extcon_set_state_sync(info->edev,
drivers/extcon/extcon-ptn5150.c
145
extcon_set_state_sync(info->edev,
drivers/extcon/extcon-ptn5150.c
289
info->edev = devm_extcon_dev_allocate(info->dev, ptn5150_extcon_cable);
drivers/extcon/extcon-ptn5150.c
290
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-ptn5150.c
296
ret = devm_extcon_dev_register(info->dev, info->edev);
drivers/extcon/extcon-ptn5150.c
302
extcon_set_property_capability(info->edev, EXTCON_USB,
drivers/extcon/extcon-ptn5150.c
304
extcon_set_property_capability(info->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-ptn5150.c
306
extcon_set_property_capability(info->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-ptn5150.c
48
struct extcon_dev *edev;
drivers/extcon/extcon-ptn5150.c
88
extcon_set_state_sync(info->edev, EXTCON_USB_HOST, false);
drivers/extcon/extcon-ptn5150.c
90
extcon_set_state_sync(info->edev, EXTCON_USB, true);
drivers/extcon/extcon-ptn5150.c
94
extcon_set_state_sync(info->edev, EXTCON_USB, false);
drivers/extcon/extcon-qcom-spmi-misc.c
103
ret = devm_extcon_dev_register(dev, info->edev);
drivers/extcon/extcon-qcom-spmi-misc.c
109
ret = extcon_set_property_capability(info->edev,
drivers/extcon/extcon-qcom-spmi-misc.c
111
ret |= extcon_set_property_capability(info->edev,
drivers/extcon/extcon-qcom-spmi-misc.c
24
struct extcon_dev *edev;
drivers/extcon/extcon-qcom-spmi-misc.c
55
extcon_set_property(info->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-qcom-spmi-misc.c
58
extcon_set_state_sync(info->edev, EXTCON_USB_HOST, !state);
drivers/extcon/extcon-qcom-spmi-misc.c
70
extcon_set_property(info->edev, EXTCON_USB,
drivers/extcon/extcon-qcom-spmi-misc.c
73
extcon_set_state_sync(info->edev, EXTCON_USB, state);
drivers/extcon/extcon-qcom-spmi-misc.c
97
info->edev = devm_extcon_dev_allocate(dev, qcom_usb_extcon_cable);
drivers/extcon/extcon-qcom-spmi-misc.c
98
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-rt8973a.c
398
extcon_set_state_sync(info->edev, id, attached);
drivers/extcon/extcon-rt8973a.c
40
struct extcon_dev *edev;
drivers/extcon/extcon-rt8973a.c
400
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SDP,
drivers/extcon/extcon-rt8973a.c
412
if (!info->edev)
drivers/extcon/extcon-rt8973a.c
617
info->edev = devm_extcon_dev_allocate(info->dev, rt8973a_extcon_cable);
drivers/extcon/extcon-rt8973a.c
618
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-rt8973a.c
624
ret = devm_extcon_dev_register(info->dev, info->edev);
drivers/extcon/extcon-rtk-type-c.c
1288
type_c->edev = devm_extcon_dev_allocate(dev, usb_type_c_cable);
drivers/extcon/extcon-rtk-type-c.c
1289
if (IS_ERR(type_c->edev)) {
drivers/extcon/extcon-rtk-type-c.c
1294
ret = devm_extcon_dev_register(dev, type_c->edev);
drivers/extcon/extcon-rtk-type-c.c
1300
extcon_set_property_capability(type_c->edev, EXTCON_USB,
drivers/extcon/extcon-rtk-type-c.c
1302
extcon_set_property_capability(type_c->edev, EXTCON_USB,
drivers/extcon/extcon-rtk-type-c.c
1304
extcon_set_property_capability(type_c->edev, EXTCON_USB,
drivers/extcon/extcon-rtk-type-c.c
1307
extcon_set_property_capability(type_c->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-rtk-type-c.c
1309
extcon_set_property_capability(type_c->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-rtk-type-c.c
1311
extcon_set_property_capability(type_c->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-rtk-type-c.c
320
extcon_set_state(type_c->edev, EXTCON_USB, is_device);
drivers/extcon/extcon-rtk-type-c.c
321
extcon_set_property(type_c->edev, EXTCON_USB,
drivers/extcon/extcon-rtk-type-c.c
324
extcon_set_property(type_c->edev, EXTCON_USB,
drivers/extcon/extcon-rtk-type-c.c
327
extcon_set_property(type_c->edev, EXTCON_USB,
drivers/extcon/extcon-rtk-type-c.c
332
extcon_set_state(type_c->edev, EXTCON_USB_HOST, is_host);
drivers/extcon/extcon-rtk-type-c.c
333
extcon_set_property(type_c->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-rtk-type-c.c
336
extcon_set_property(type_c->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-rtk-type-c.c
339
extcon_set_property(type_c->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-rtk-type-c.c
344
extcon_sync(type_c->edev, EXTCON_USB);
drivers/extcon/extcon-rtk-type-c.c
345
extcon_sync(type_c->edev, EXTCON_USB_HOST);
drivers/extcon/extcon-rtk-type-c.c
58
struct extcon_dev *edev;
drivers/extcon/extcon-sm5502.c
38
struct extcon_dev *edev;
drivers/extcon/extcon-sm5502.c
515
extcon_set_state_sync(info->edev, id, attached);
drivers/extcon/extcon-sm5502.c
517
extcon_set_state_sync(info->edev, EXTCON_CHG_USB_SDP,
drivers/extcon/extcon-sm5502.c
529
if (!info->edev)
drivers/extcon/extcon-sm5502.c
745
info->edev = devm_extcon_dev_allocate(info->dev, sm5502_extcon_cable);
drivers/extcon/extcon-sm5502.c
746
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-sm5502.c
752
ret = devm_extcon_dev_register(info->dev, info->edev);
drivers/extcon/extcon-usb-gpio.c
127
info->edev = devm_extcon_dev_allocate(dev, usb_extcon_cable);
drivers/extcon/extcon-usb-gpio.c
128
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-usb-gpio.c
133
ret = devm_extcon_dev_register(dev, info->edev);
drivers/extcon/extcon-usb-gpio.c
26
struct extcon_dev *edev;
drivers/extcon/extcon-usb-gpio.c
75
extcon_set_state_sync(info->edev, EXTCON_USB_HOST, false);
drivers/extcon/extcon-usb-gpio.c
77
extcon_set_state_sync(info->edev, EXTCON_USB, false);
drivers/extcon/extcon-usb-gpio.c
80
extcon_set_state_sync(info->edev, EXTCON_USB_HOST, true);
drivers/extcon/extcon-usb-gpio.c
83
extcon_set_state_sync(info->edev, EXTCON_USB, true);
drivers/extcon/extcon-usbc-cros-ec.c
20
struct extcon_dev *edev;
drivers/extcon/extcon-usbc-cros-ec.c
317
extcon_set_state(info->edev, EXTCON_USB, device_connected);
drivers/extcon/extcon-usbc-cros-ec.c
318
extcon_set_state(info->edev, EXTCON_USB_HOST, host_connected);
drivers/extcon/extcon-usbc-cros-ec.c
319
extcon_set_state(info->edev, EXTCON_DISP_DP, dp);
drivers/extcon/extcon-usbc-cros-ec.c
320
extcon_set_property(info->edev, EXTCON_USB,
drivers/extcon/extcon-usbc-cros-ec.c
323
extcon_set_property(info->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-usbc-cros-ec.c
326
extcon_set_property(info->edev, EXTCON_USB,
drivers/extcon/extcon-usbc-cros-ec.c
329
extcon_set_property(info->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-usbc-cros-ec.c
332
extcon_set_property(info->edev, EXTCON_DISP_DP,
drivers/extcon/extcon-usbc-cros-ec.c
335
extcon_set_property(info->edev, EXTCON_USB,
drivers/extcon/extcon-usbc-cros-ec.c
338
extcon_set_property(info->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-usbc-cros-ec.c
341
extcon_set_property(info->edev, EXTCON_DISP_DP,
drivers/extcon/extcon-usbc-cros-ec.c
344
extcon_set_property(info->edev, EXTCON_DISP_DP,
drivers/extcon/extcon-usbc-cros-ec.c
348
extcon_sync(info->edev, EXTCON_USB);
drivers/extcon/extcon-usbc-cros-ec.c
349
extcon_sync(info->edev, EXTCON_USB_HOST);
drivers/extcon/extcon-usbc-cros-ec.c
350
extcon_sync(info->edev, EXTCON_DISP_DP);
drivers/extcon/extcon-usbc-cros-ec.c
353
extcon_set_property(info->edev, EXTCON_DISP_DP,
drivers/extcon/extcon-usbc-cros-ec.c
356
extcon_sync(info->edev, EXTCON_DISP_DP);
drivers/extcon/extcon-usbc-cros-ec.c
423
info->edev = devm_extcon_dev_allocate(dev, usb_type_c_cable);
drivers/extcon/extcon-usbc-cros-ec.c
424
if (IS_ERR(info->edev)) {
drivers/extcon/extcon-usbc-cros-ec.c
429
ret = devm_extcon_dev_register(dev, info->edev);
drivers/extcon/extcon-usbc-cros-ec.c
435
extcon_set_property_capability(info->edev, EXTCON_USB,
drivers/extcon/extcon-usbc-cros-ec.c
437
extcon_set_property_capability(info->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-usbc-cros-ec.c
439
extcon_set_property_capability(info->edev, EXTCON_USB,
drivers/extcon/extcon-usbc-cros-ec.c
441
extcon_set_property_capability(info->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-usbc-cros-ec.c
443
extcon_set_property_capability(info->edev, EXTCON_DISP_DP,
drivers/extcon/extcon-usbc-cros-ec.c
445
extcon_set_property_capability(info->edev, EXTCON_USB,
drivers/extcon/extcon-usbc-cros-ec.c
447
extcon_set_property_capability(info->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-usbc-cros-ec.c
449
extcon_set_property_capability(info->edev, EXTCON_DISP_DP,
drivers/extcon/extcon-usbc-cros-ec.c
451
extcon_set_property_capability(info->edev, EXTCON_DISP_DP,
drivers/extcon/extcon-usbc-tusb320.c
263
extcon_set_state(priv->edev, EXTCON_USB,
drivers/extcon/extcon-usbc-tusb320.c
265
extcon_set_state(priv->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-usbc-tusb320.c
267
extcon_set_property(priv->edev, EXTCON_USB,
drivers/extcon/extcon-usbc-tusb320.c
270
extcon_set_property(priv->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-usbc-tusb320.c
273
extcon_sync(priv->edev, EXTCON_USB);
drivers/extcon/extcon-usbc-tusb320.c
274
extcon_sync(priv->edev, EXTCON_USB_HOST);
drivers/extcon/extcon-usbc-tusb320.c
417
priv->edev = devm_extcon_dev_allocate(priv->dev, tusb320_extcon_cable);
drivers/extcon/extcon-usbc-tusb320.c
418
if (IS_ERR(priv->edev)) {
drivers/extcon/extcon-usbc-tusb320.c
420
return PTR_ERR(priv->edev);
drivers/extcon/extcon-usbc-tusb320.c
423
ret = devm_extcon_dev_register(priv->dev, priv->edev);
drivers/extcon/extcon-usbc-tusb320.c
429
extcon_set_property_capability(priv->edev, EXTCON_USB,
drivers/extcon/extcon-usbc-tusb320.c
431
extcon_set_property_capability(priv->edev, EXTCON_USB_HOST,
drivers/extcon/extcon-usbc-tusb320.c
77
struct extcon_dev *edev;
drivers/extcon/extcon.c
1005
if (!edev || !nb)
drivers/extcon/extcon.c
1008
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
1009
ret = raw_notifier_chain_unregister(&edev->nh_all, nb);
drivers/extcon/extcon.c
1010
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
1058
struct extcon_dev *edev;
drivers/extcon/extcon.c
1063
edev = kzalloc_obj(*edev);
drivers/extcon/extcon.c
1064
if (!edev)
drivers/extcon/extcon.c
1067
edev->max_supported = 0;
drivers/extcon/extcon.c
1068
edev->supported_cable = supported_cable;
drivers/extcon/extcon.c
1070
return edev;
drivers/extcon/extcon.c
1077
void extcon_dev_free(struct extcon_dev *edev)
drivers/extcon/extcon.c
1079
kfree(edev);
drivers/extcon/extcon.c
1089
static int extcon_alloc_cables(struct extcon_dev *edev)
drivers/extcon/extcon.c
1095
if (!edev)
drivers/extcon/extcon.c
1098
if (!edev->max_supported)
drivers/extcon/extcon.c
1101
edev->cables = kzalloc_objs(*edev->cables, edev->max_supported);
drivers/extcon/extcon.c
1102
if (!edev->cables)
drivers/extcon/extcon.c
1105
for (index = 0; index < edev->max_supported; index++) {
drivers/extcon/extcon.c
1106
cable = &edev->cables[index];
drivers/extcon/extcon.c
1111
cable = &edev->cables[index];
drivers/extcon/extcon.c
1115
kfree(edev->cables);
drivers/extcon/extcon.c
1119
cable->edev = edev;
drivers/extcon/extcon.c
1147
static int extcon_alloc_muex(struct extcon_dev *edev)
drivers/extcon/extcon.c
1152
if (!edev)
drivers/extcon/extcon.c
1155
if (!(edev->max_supported && edev->mutually_exclusive))
drivers/extcon/extcon.c
1159
for (index = 0; edev->mutually_exclusive[index]; index++)
drivers/extcon/extcon.c
1162
edev->attrs_muex = kzalloc_objs(*edev->attrs_muex, index + 1);
drivers/extcon/extcon.c
1163
if (!edev->attrs_muex)
drivers/extcon/extcon.c
1166
edev->d_attrs_muex = kzalloc_objs(*edev->d_attrs_muex, index);
drivers/extcon/extcon.c
1167
if (!edev->d_attrs_muex) {
drivers/extcon/extcon.c
1168
kfree(edev->attrs_muex);
drivers/extcon/extcon.c
1172
for (index = 0; edev->mutually_exclusive[index]; index++) {
drivers/extcon/extcon.c
1174
edev->mutually_exclusive[index]);
drivers/extcon/extcon.c
1177
kfree(edev->d_attrs_muex[index].attr.name);
drivers/extcon/extcon.c
1179
kfree(edev->d_attrs_muex);
drivers/extcon/extcon.c
1180
kfree(edev->attrs_muex);
drivers/extcon/extcon.c
1183
sysfs_attr_init(&edev->d_attrs_muex[index].attr);
drivers/extcon/extcon.c
1184
edev->d_attrs_muex[index].attr.name = name;
drivers/extcon/extcon.c
1185
edev->d_attrs_muex[index].attr.mode = 0000;
drivers/extcon/extcon.c
1186
edev->attrs_muex[index] = &edev->d_attrs_muex[index].attr;
drivers/extcon/extcon.c
1188
edev->attr_g_muex.name = muex_name;
drivers/extcon/extcon.c
1189
edev->attr_g_muex.attrs = edev->attrs_muex;
drivers/extcon/extcon.c
1200
static int extcon_alloc_groups(struct extcon_dev *edev)
drivers/extcon/extcon.c
1204
if (!edev)
drivers/extcon/extcon.c
1207
if (!edev->max_supported)
drivers/extcon/extcon.c
1210
edev->extcon_dev_type.groups = kzalloc_objs(*edev->extcon_dev_type.groups,
drivers/extcon/extcon.c
1211
edev->max_supported + 2);
drivers/extcon/extcon.c
1212
if (!edev->extcon_dev_type.groups)
drivers/extcon/extcon.c
1215
edev->extcon_dev_type.name = dev_name(&edev->dev);
drivers/extcon/extcon.c
1216
edev->extcon_dev_type.release = dummy_sysfs_dev_release;
drivers/extcon/extcon.c
1218
for (index = 0; index < edev->max_supported; index++)
drivers/extcon/extcon.c
1219
edev->extcon_dev_type.groups[index] = &edev->cables[index].attr_g;
drivers/extcon/extcon.c
1221
if (edev->mutually_exclusive)
drivers/extcon/extcon.c
1222
edev->extcon_dev_type.groups[index] = &edev->attr_g_muex;
drivers/extcon/extcon.c
1224
edev->dev.type = &edev->extcon_dev_type;
drivers/extcon/extcon.c
1243
int extcon_dev_register(struct extcon_dev *edev)
drivers/extcon/extcon.c
1251
if (!edev || !edev->supported_cable)
drivers/extcon/extcon.c
1254
for (index = 0; edev->supported_cable[index] != EXTCON_NONE; index++);
drivers/extcon/extcon.c
1256
edev->max_supported = index;
drivers/extcon/extcon.c
1258
dev_err(&edev->dev,
drivers/extcon/extcon.c
1263
edev->dev.class = extcon_class;
drivers/extcon/extcon.c
1264
edev->dev.release = extcon_dev_release;
drivers/extcon/extcon.c
1266
edev->name = dev_name(edev->dev.parent);
drivers/extcon/extcon.c
1267
if (IS_ERR_OR_NULL(edev->name)) {
drivers/extcon/extcon.c
1268
dev_err(&edev->dev,
drivers/extcon/extcon.c
1277
edev->id = ret;
drivers/extcon/extcon.c
1279
ret = extcon_alloc_cables(edev);
drivers/extcon/extcon.c
1283
ret = extcon_alloc_muex(edev);
drivers/extcon/extcon.c
1287
ret = extcon_alloc_groups(edev);
drivers/extcon/extcon.c
1291
spin_lock_init(&edev->lock);
drivers/extcon/extcon.c
1292
if (edev->max_supported) {
drivers/extcon/extcon.c
1293
edev->nh = kzalloc_objs(*edev->nh, edev->max_supported);
drivers/extcon/extcon.c
1294
if (!edev->nh) {
drivers/extcon/extcon.c
1300
for (index = 0; index < edev->max_supported; index++)
drivers/extcon/extcon.c
1301
RAW_INIT_NOTIFIER_HEAD(&edev->nh[index]);
drivers/extcon/extcon.c
1303
RAW_INIT_NOTIFIER_HEAD(&edev->nh_all);
drivers/extcon/extcon.c
1305
dev_set_drvdata(&edev->dev, edev);
drivers/extcon/extcon.c
1306
dev_set_name(&edev->dev, "extcon%d", edev->id);
drivers/extcon/extcon.c
1307
edev->state = 0;
drivers/extcon/extcon.c
1309
ret = device_register(&edev->dev);
drivers/extcon/extcon.c
1311
put_device(&edev->dev);
drivers/extcon/extcon.c
1316
list_add(&edev->entry, &extcon_dev_list);
drivers/extcon/extcon.c
1322
if (edev->max_supported)
drivers/extcon/extcon.c
1323
kfree(edev->nh);
drivers/extcon/extcon.c
1325
if (edev->max_supported)
drivers/extcon/extcon.c
1326
kfree(edev->extcon_dev_type.groups);
drivers/extcon/extcon.c
1328
if (edev->max_supported && edev->mutually_exclusive) {
drivers/extcon/extcon.c
1329
for (index = 0; edev->mutually_exclusive[index]; index++)
drivers/extcon/extcon.c
1330
kfree(edev->d_attrs_muex[index].attr.name);
drivers/extcon/extcon.c
1331
kfree(edev->d_attrs_muex);
drivers/extcon/extcon.c
1332
kfree(edev->attrs_muex);
drivers/extcon/extcon.c
1335
for (index = 0; index < edev->max_supported; index++)
drivers/extcon/extcon.c
1336
kfree(edev->cables[index].attr_g.name);
drivers/extcon/extcon.c
1337
if (edev->max_supported)
drivers/extcon/extcon.c
1338
kfree(edev->cables);
drivers/extcon/extcon.c
1340
ida_free(&extcon_dev_ids, edev->id);
drivers/extcon/extcon.c
1353
void extcon_dev_unregister(struct extcon_dev *edev)
drivers/extcon/extcon.c
1357
if (!edev)
drivers/extcon/extcon.c
1361
list_del(&edev->entry);
drivers/extcon/extcon.c
1364
if (!get_device(&edev->dev)) {
drivers/extcon/extcon.c
1365
dev_err(&edev->dev, "Failed to unregister extcon_dev\n");
drivers/extcon/extcon.c
1369
ida_free(&extcon_dev_ids, edev->id);
drivers/extcon/extcon.c
1371
device_unregister(&edev->dev);
drivers/extcon/extcon.c
1373
if (edev->mutually_exclusive && edev->max_supported) {
drivers/extcon/extcon.c
1374
for (index = 0; edev->mutually_exclusive[index];
drivers/extcon/extcon.c
1376
kfree(edev->d_attrs_muex[index].attr.name);
drivers/extcon/extcon.c
1377
kfree(edev->d_attrs_muex);
drivers/extcon/extcon.c
1378
kfree(edev->attrs_muex);
drivers/extcon/extcon.c
1381
for (index = 0; index < edev->max_supported; index++)
drivers/extcon/extcon.c
1382
kfree(edev->cables[index].attr_g.name);
drivers/extcon/extcon.c
1384
if (edev->max_supported) {
drivers/extcon/extcon.c
1385
kfree(edev->extcon_dev_type.groups);
drivers/extcon/extcon.c
1386
kfree(edev->cables);
drivers/extcon/extcon.c
1387
kfree(edev->nh);
drivers/extcon/extcon.c
1390
put_device(&edev->dev);
drivers/extcon/extcon.c
1404
struct extcon_dev *edev;
drivers/extcon/extcon.c
1407
list_for_each_entry(edev, &extcon_dev_list, entry)
drivers/extcon/extcon.c
1408
if (edev->dev.parent && device_match_of_node(edev->dev.parent, node))
drivers/extcon/extcon.c
1410
edev = ERR_PTR(-EPROBE_DEFER);
drivers/extcon/extcon.c
1414
return edev;
drivers/extcon/extcon.c
1427
struct extcon_dev *edev;
drivers/extcon/extcon.c
1440
edev = extcon_find_edev_by_node(node);
drivers/extcon/extcon.c
1443
return edev;
drivers/extcon/extcon.c
1467
const char *extcon_get_edev_name(struct extcon_dev *edev)
drivers/extcon/extcon.c
1469
return !edev ? NULL : edev->name;
drivers/extcon/extcon.c
220
struct extcon_dev *edev;
drivers/extcon/extcon.c
246
static int check_mutually_exclusive(struct extcon_dev *edev, u32 new_state)
drivers/extcon/extcon.c
250
if (!edev->mutually_exclusive)
drivers/extcon/extcon.c
253
for (i = 0; edev->mutually_exclusive[i]; i++) {
drivers/extcon/extcon.c
255
u32 correspondants = new_state & edev->mutually_exclusive[i];
drivers/extcon/extcon.c
266
static int find_cable_index_by_id(struct extcon_dev *edev, const unsigned int id)
drivers/extcon/extcon.c
271
for (i = 0; i < edev->max_supported; i++) {
drivers/extcon/extcon.c
272
if (edev->supported_cable[i] == id)
drivers/extcon/extcon.c
295
static bool is_extcon_attached(struct extcon_dev *edev, unsigned int index)
drivers/extcon/extcon.c
297
return !!(edev->state & BIT(index));
drivers/extcon/extcon.c
300
static bool is_extcon_changed(struct extcon_dev *edev, int index,
drivers/extcon/extcon.c
303
int state = !!(edev->state & BIT(index));
drivers/extcon/extcon.c
320
static int is_extcon_property_capability(struct extcon_dev *edev,
drivers/extcon/extcon.c
331
cable = &edev->cables[index];
drivers/extcon/extcon.c
353
static void init_property(struct extcon_dev *edev, unsigned int id, int index)
drivers/extcon/extcon.c
356
struct extcon_cable *cable = &edev->cables[index];
drivers/extcon/extcon.c
372
struct extcon_dev *edev = dev_get_drvdata(dev);
drivers/extcon/extcon.c
374
if (edev->max_supported == 0)
drivers/extcon/extcon.c
375
return sysfs_emit(buf, "%u\n", edev->state);
drivers/extcon/extcon.c
377
for (i = 0; i < edev->max_supported; i++) {
drivers/extcon/extcon.c
379
extcon_info[edev->supported_cable[i]].name,
drivers/extcon/extcon.c
380
!!(edev->state & BIT(i)));
drivers/extcon/extcon.c
390
struct extcon_dev *edev = dev_get_drvdata(dev);
drivers/extcon/extcon.c
392
return sysfs_emit(buf, "%s\n", edev->name);
drivers/extcon/extcon.c
404
extcon_info[cable->edev->supported_cable[i]].name);
drivers/extcon/extcon.c
416
extcon_get_state(cable->edev, cable->edev->supported_cable[i]));
drivers/extcon/extcon.c
429
int extcon_sync(struct extcon_dev *edev, unsigned int id)
drivers/extcon/extcon.c
441
if (!edev)
drivers/extcon/extcon.c
444
index = find_cable_index_by_id(edev, id);
drivers/extcon/extcon.c
448
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
449
state = !!(edev->state & BIT(index));
drivers/extcon/extcon.c
450
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
456
raw_notifier_call_chain(&edev->nh[index], state, edev);
drivers/extcon/extcon.c
462
raw_notifier_call_chain(&edev->nh_all, state, edev);
drivers/extcon/extcon.c
464
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
469
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
471
dev_err(&edev->dev, "out of memory in extcon_set_state\n");
drivers/extcon/extcon.c
472
kobject_uevent(&edev->dev.kobj, KOBJ_CHANGE);
drivers/extcon/extcon.c
477
length = name_show(&edev->dev, NULL, prop_buf);
drivers/extcon/extcon.c
485
length = state_show(&edev->dev, NULL, prop_buf);
drivers/extcon/extcon.c
495
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
496
kobject_uevent_env(&edev->dev.kobj, KOBJ_CHANGE, envp);
drivers/extcon/extcon.c
510
int extcon_get_state(struct extcon_dev *edev, const unsigned int id)
drivers/extcon/extcon.c
515
if (!edev)
drivers/extcon/extcon.c
518
index = find_cable_index_by_id(edev, id);
drivers/extcon/extcon.c
522
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
523
state = is_extcon_attached(edev, index);
drivers/extcon/extcon.c
524
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
543
int extcon_set_state(struct extcon_dev *edev, unsigned int id, bool state)
drivers/extcon/extcon.c
548
if (!edev)
drivers/extcon/extcon.c
551
index = find_cable_index_by_id(edev, id);
drivers/extcon/extcon.c
555
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
558
if (!is_extcon_changed(edev, index, state))
drivers/extcon/extcon.c
561
if (check_mutually_exclusive(edev,
drivers/extcon/extcon.c
562
(edev->state & ~BIT(index)) | (state & BIT(index)))) {
drivers/extcon/extcon.c
572
init_property(edev, id, index);
drivers/extcon/extcon.c
576
edev->state |= BIT(index);
drivers/extcon/extcon.c
578
edev->state &= ~(BIT(index));
drivers/extcon/extcon.c
580
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
598
int extcon_set_state_sync(struct extcon_dev *edev, unsigned int id, bool state)
drivers/extcon/extcon.c
602
ret = extcon_set_state(edev, id, state);
drivers/extcon/extcon.c
606
return extcon_sync(edev, id);
drivers/extcon/extcon.c
624
int extcon_get_property(struct extcon_dev *edev, unsigned int id,
drivers/extcon/extcon.c
634
if (!edev)
drivers/extcon/extcon.c
642
index = find_cable_index_by_id(edev, id);
drivers/extcon/extcon.c
646
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
649
if (!is_extcon_property_capability(edev, id, index, prop)) {
drivers/extcon/extcon.c
650
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
659
if (!is_extcon_attached(edev, index)) {
drivers/extcon/extcon.c
660
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
664
cable = &edev->cables[index];
drivers/extcon/extcon.c
685
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
703
int extcon_set_property(struct extcon_dev *edev, unsigned int id,
drivers/extcon/extcon.c
711
if (!edev)
drivers/extcon/extcon.c
719
index = find_cable_index_by_id(edev, id);
drivers/extcon/extcon.c
723
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
726
if (!is_extcon_property_capability(edev, id, index, prop)) {
drivers/extcon/extcon.c
727
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
731
cable = &edev->cables[index];
drivers/extcon/extcon.c
752
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
771
int extcon_set_property_sync(struct extcon_dev *edev, unsigned int id,
drivers/extcon/extcon.c
777
ret = extcon_set_property(edev, id, prop, prop_val);
drivers/extcon/extcon.c
781
return extcon_sync(edev, id);
drivers/extcon/extcon.c
794
int extcon_get_property_capability(struct extcon_dev *edev, unsigned int id,
drivers/extcon/extcon.c
799
if (!edev)
drivers/extcon/extcon.c
807
index = find_cable_index_by_id(edev, id);
drivers/extcon/extcon.c
811
return is_extcon_property_capability(edev, id, index, prop);
drivers/extcon/extcon.c
828
int extcon_set_property_capability(struct extcon_dev *edev, unsigned int id,
drivers/extcon/extcon.c
834
if (!edev)
drivers/extcon/extcon.c
842
index = find_cable_index_by_id(edev, id);
drivers/extcon/extcon.c
850
cable = &edev->cables[index];
drivers/extcon/extcon.c
913
int extcon_register_notifier(struct extcon_dev *edev, unsigned int id,
drivers/extcon/extcon.c
919
if (!edev || !nb)
drivers/extcon/extcon.c
922
idx = find_cable_index_by_id(edev, id);
drivers/extcon/extcon.c
926
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
927
ret = raw_notifier_chain_register(&edev->nh[idx], nb);
drivers/extcon/extcon.c
928
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
942
int extcon_unregister_notifier(struct extcon_dev *edev, unsigned int id,
drivers/extcon/extcon.c
948
if (!edev || !nb)
drivers/extcon/extcon.c
951
idx = find_cable_index_by_id(edev, id);
drivers/extcon/extcon.c
955
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
956
ret = raw_notifier_chain_unregister(&edev->nh[idx], nb);
drivers/extcon/extcon.c
957
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
975
int extcon_register_notifier_all(struct extcon_dev *edev,
drivers/extcon/extcon.c
981
if (!edev || !nb)
drivers/extcon/extcon.c
984
spin_lock_irqsave(&edev->lock, flags);
drivers/extcon/extcon.c
985
ret = raw_notifier_chain_register(&edev->nh_all, nb);
drivers/extcon/extcon.c
986
spin_unlock_irqrestore(&edev->lock, flags);
drivers/extcon/extcon.c
999
int extcon_unregister_notifier_all(struct extcon_dev *edev,
drivers/firmware/edd.c
121
edd_show_host_bus(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
127
if (!edev)
drivers/firmware/edd.c
129
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
167
edd_show_interface(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
173
if (!edev)
drivers/firmware/edd.c
175
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
233
edd_show_raw_data(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
237
if (!edev)
drivers/firmware/edd.c
239
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
255
edd_show_version(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
259
if (!edev)
drivers/firmware/edd.c
261
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
270
edd_show_mbr_signature(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
273
p += scnprintf(p, left, "0x%08x\n", edev->mbr_signature);
drivers/firmware/edd.c
278
edd_show_extensions(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
282
if (!edev)
drivers/firmware/edd.c
284
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
304
edd_show_info_flags(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
308
if (!edev)
drivers/firmware/edd.c
310
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
334
edd_show_legacy_max_cylinder(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
338
if (!edev)
drivers/firmware/edd.c
340
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
349
edd_show_legacy_max_head(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
353
if (!edev)
drivers/firmware/edd.c
355
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
364
edd_show_legacy_sectors_per_track(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
368
if (!edev)
drivers/firmware/edd.c
370
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
379
edd_show_default_cylinders(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
383
if (!edev)
drivers/firmware/edd.c
385
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
394
edd_show_default_heads(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
398
if (!edev)
drivers/firmware/edd.c
400
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
409
edd_show_default_sectors_per_track(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
413
if (!edev)
drivers/firmware/edd.c
415
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
424
edd_show_sectors(struct edd_device *edev, char *buf)
drivers/firmware/edd.c
428
if (!edev)
drivers/firmware/edd.c
430
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
450
edd_has_legacy_max_cylinder(struct edd_device *edev)
drivers/firmware/edd.c
453
if (!edev)
drivers/firmware/edd.c
455
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
462
edd_has_legacy_max_head(struct edd_device *edev)
drivers/firmware/edd.c
465
if (!edev)
drivers/firmware/edd.c
467
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
474
edd_has_legacy_sectors_per_track(struct edd_device *edev)
drivers/firmware/edd.c
477
if (!edev)
drivers/firmware/edd.c
479
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
486
edd_has_default_cylinders(struct edd_device *edev)
drivers/firmware/edd.c
489
if (!edev)
drivers/firmware/edd.c
491
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
498
edd_has_default_heads(struct edd_device *edev)
drivers/firmware/edd.c
501
if (!edev)
drivers/firmware/edd.c
503
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
510
edd_has_default_sectors_per_track(struct edd_device *edev)
drivers/firmware/edd.c
513
if (!edev)
drivers/firmware/edd.c
515
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
522
edd_has_edd30(struct edd_device *edev)
drivers/firmware/edd.c
528
if (!edev)
drivers/firmware/edd.c
530
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
56
ssize_t(*show) (struct edd_device * edev, char *buf);
drivers/firmware/edd.c
57
int (*test) (struct edd_device * edev);
drivers/firmware/edd.c
61
static int edd_dev_is_type(struct edd_device *edev, const char *type);
drivers/firmware/edd.c
62
static struct pci_dev *edd_get_pci_dev(struct edd_device *edev);
drivers/firmware/edd.c
627
edd_dev_is_type(struct edd_device *edev, const char *type)
drivers/firmware/edd.c
630
if (!edev)
drivers/firmware/edd.c
632
info = edd_dev_get_info(edev);
drivers/firmware/edd.c
649
edd_get_pci_dev(struct edd_device *edev)
drivers/firmware/edd.c
651
struct edd_info *info = edd_dev_get_info(edev);
drivers/firmware/edd.c
653
if (edd_dev_is_type(edev, "PCI") || edd_dev_is_type(edev, "XPRS")) {
drivers/firmware/edd.c
663
edd_create_symlink_to_pcidev(struct edd_device *edev)
drivers/firmware/edd.c
666
struct pci_dev *pci_dev = edd_get_pci_dev(edev);
drivers/firmware/edd.c
670
ret = sysfs_create_link(&edev->kobj,&pci_dev->dev.kobj,"pci_dev");
drivers/firmware/edd.c
676
edd_device_unregister(struct edd_device *edev)
drivers/firmware/edd.c
678
kobject_put(&edev->kobj);
drivers/firmware/edd.c
681
static void edd_populate_dir(struct edd_device * edev)
drivers/firmware/edd.c
688
if (!attr->test || attr->test(edev))
drivers/firmware/edd.c
689
error = sysfs_create_file(&edev->kobj,&attr->attr);
drivers/firmware/edd.c
693
edd_create_symlink_to_pcidev(edev);
drivers/firmware/edd.c
698
edd_device_register(struct edd_device *edev, int i)
drivers/firmware/edd.c
702
if (!edev)
drivers/firmware/edd.c
704
edd_dev_set_info(edev, i);
drivers/firmware/edd.c
705
edev->kobj.kset = edd_kset;
drivers/firmware/edd.c
706
error = kobject_init_and_add(&edev->kobj, &edd_ktype, NULL,
drivers/firmware/edd.c
709
edd_populate_dir(edev);
drivers/firmware/edd.c
710
kobject_uevent(&edev->kobj, KOBJ_ADD);
drivers/firmware/edd.c
730
struct edd_device *edev;
drivers/firmware/edd.c
74
edd_has_mbr_signature(struct edd_device *edev)
drivers/firmware/edd.c
743
edev = kzalloc_obj(*edev);
drivers/firmware/edd.c
744
if (!edev) {
drivers/firmware/edd.c
749
rc = edd_device_register(edev, i);
drivers/firmware/edd.c
751
kfree(edev);
drivers/firmware/edd.c
754
edd_devices[i] = edev;
drivers/firmware/edd.c
76
return edev->index < min_t(unsigned char, edd.mbr_signature_nr, EDD_MBR_SIG_MAX);
drivers/firmware/edd.c
770
struct edd_device *edev;
drivers/firmware/edd.c
773
if ((edev = edd_devices[i]))
drivers/firmware/edd.c
774
edd_device_unregister(edev);
drivers/firmware/edd.c
80
edd_has_edd_info(struct edd_device *edev)
drivers/firmware/edd.c
82
return edev->index < min_t(unsigned char, edd.edd_info_nr, EDDMAXNR);
drivers/firmware/edd.c
86
edd_dev_get_info(struct edd_device *edev)
drivers/firmware/edd.c
88
return edev->info;
drivers/firmware/edd.c
92
edd_dev_set_info(struct edd_device *edev, int i)
drivers/firmware/edd.c
94
edev->index = i;
drivers/firmware/edd.c
95
if (edd_has_mbr_signature(edev))
drivers/firmware/edd.c
96
edev->mbr_signature = edd.mbr_signature[i];
drivers/firmware/edd.c
97
if (edd_has_edd_info(edev))
drivers/firmware/edd.c
98
edev->info = &edd.edd_info[i];
drivers/gpu/drm/bridge/sil-sii8620.c
2165
struct extcon_dev *edev;
drivers/gpu/drm/bridge/sil-sii8620.c
2179
edev = extcon_find_edev_by_node(muic);
drivers/gpu/drm/bridge/sil-sii8620.c
2181
if (IS_ERR(edev)) {
drivers/gpu/drm/bridge/sil-sii8620.c
2182
if (PTR_ERR(edev) == -EPROBE_DEFER)
drivers/gpu/drm/bridge/sil-sii8620.c
2185
return PTR_ERR(edev);
drivers/gpu/drm/bridge/sil-sii8620.c
2188
ctx->extcon = edev;
drivers/gpu/drm/bridge/sil-sii8620.c
2191
ret = extcon_register_notifier(edev, EXTCON_DISP_MHL, &ctx->extcon_nb);
drivers/gpu/drm/rockchip/cdn-dp-core.c
155
struct extcon_dev *edev = port->extcon;
drivers/gpu/drm/rockchip/cdn-dp-core.c
160
dptx = extcon_get_state(edev, EXTCON_DISP_DP);
drivers/gpu/drm/rockchip/cdn-dp-core.c
162
extcon_get_property(edev, EXTCON_DISP_DP,
drivers/infiniband/hw/bnxt_re/main.c
2491
en_dev = aux_priv->edev;
drivers/infiniband/hw/efa/efa.h
49
struct efa_com_dev edev;
drivers/infiniband/hw/efa/efa_com.c
1007
int efa_com_get_dma_width(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
1009
u32 caps = efa_com_reg_read32(edev, EFA_REGS_CAPS_OFF);
drivers/infiniband/hw/efa/efa_com.c
1014
ibdev_dbg(edev->efa_dev, "DMA width: %d\n", width);
drivers/infiniband/hw/efa/efa_com.c
1017
ibdev_err(edev->efa_dev, "DMA width illegal value: %d\n", width);
drivers/infiniband/hw/efa/efa_com.c
1021
edev->dma_addr_bits = width;
drivers/infiniband/hw/efa/efa_com.c
1026
static int wait_for_reset_state(struct efa_com_dev *edev, u32 timeout, int on)
drivers/infiniband/hw/efa/efa_com.c
1031
val = efa_com_reg_read32(edev, EFA_REGS_DEV_STS_OFF);
drivers/infiniband/hw/efa/efa_com.c
1036
ibdev_dbg(edev->efa_dev, "Reset indication val %d\n", val);
drivers/infiniband/hw/efa/efa_com.c
1050
int efa_com_dev_reset(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com.c
1057
stat = efa_com_reg_read32(edev, EFA_REGS_DEV_STS_OFF);
drivers/infiniband/hw/efa/efa_com.c
1058
cap = efa_com_reg_read32(edev, EFA_REGS_CAPS_OFF);
drivers/infiniband/hw/efa/efa_com.c
106
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com.c
1061
ibdev_err(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com.c
1068
ibdev_err(edev->efa_dev, "Invalid timeout value\n");
drivers/infiniband/hw/efa/efa_com.c
1075
writel(reset_val, edev->reg_bar + EFA_REGS_DEV_CTL_OFF);
drivers/infiniband/hw/efa/efa_com.c
1078
efa_com_mmio_reg_read_resp_addr_init(edev);
drivers/infiniband/hw/efa/efa_com.c
1080
err = wait_for_reset_state(edev, timeout, 1);
drivers/infiniband/hw/efa/efa_com.c
1082
ibdev_err(edev->efa_dev, "Reset indication didn't turn on\n");
drivers/infiniband/hw/efa/efa_com.c
1087
writel(0, edev->reg_bar + EFA_REGS_DEV_CTL_OFF);
drivers/infiniband/hw/efa/efa_com.c
1088
err = wait_for_reset_state(edev, timeout, 0);
drivers/infiniband/hw/efa/efa_com.c
1090
ibdev_err(edev->efa_dev, "Reset indication didn't turn off\n");
drivers/infiniband/hw/efa/efa_com.c
1097
edev->aq.completion_timeout = timeout * 100000;
drivers/infiniband/hw/efa/efa_com.c
1099
edev->aq.completion_timeout = ADMIN_CMD_TIMEOUT_US;
drivers/infiniband/hw/efa/efa_com.c
1104
static int efa_com_create_eq(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com.c
1108
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com.c
1129
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com.c
1139
static void efa_com_destroy_eq(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com.c
1142
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com.c
1156
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com.c
116
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com.c
1161
static void efa_com_arm_eq(struct efa_com_dev *edev, struct efa_com_eq *eeq)
drivers/infiniband/hw/efa/efa_com.c
1168
writel(val, edev->reg_bar + EFA_REGS_EQ_DB_OFF);
drivers/infiniband/hw/efa/efa_com.c
1171
void efa_com_eq_comp_intr_handler(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com.c
1207
efa_com_arm_eq(eeq->edev, eeq);
drivers/infiniband/hw/efa/efa_com.c
1210
void efa_com_eq_destroy(struct efa_com_dev *edev, struct efa_com_eq *eeq)
drivers/infiniband/hw/efa/efa_com.c
1216
efa_com_destroy_eq(edev, ¶ms);
drivers/infiniband/hw/efa/efa_com.c
1217
dma_free_coherent(edev->dmadev, eeq->depth * sizeof(*eeq->eqes),
drivers/infiniband/hw/efa/efa_com.c
1221
int efa_com_eq_init(struct efa_com_dev *edev, struct efa_com_eq *eeq,
drivers/infiniband/hw/efa/efa_com.c
1234
eeq->eqes = dma_alloc_coherent(edev->dmadev,
drivers/infiniband/hw/efa/efa_com.c
1240
err = efa_com_create_eq(edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_com.c
1245
eeq->edev = edev;
drivers/infiniband/hw/efa/efa_com.c
1250
efa_com_arm_eq(edev, eeq);
drivers/infiniband/hw/efa/efa_com.c
1255
dma_free_coherent(edev->dmadev, params.depth * sizeof(*eeq->eqes),
drivers/infiniband/hw/efa/efa_com.c
128
static int efa_com_admin_init_sq(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
130
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com.c
148
sq->db_addr = (u32 __iomem *)(edev->reg_bar + EFA_REGS_AQ_PROD_DB_OFF);
drivers/infiniband/hw/efa/efa_com.c
153
writel(addr_low, edev->reg_bar + EFA_REGS_AQ_BASE_LO_OFF);
drivers/infiniband/hw/efa/efa_com.c
154
writel(addr_high, edev->reg_bar + EFA_REGS_AQ_BASE_HI_OFF);
drivers/infiniband/hw/efa/efa_com.c
160
writel(aq_caps, edev->reg_bar + EFA_REGS_AQ_CAPS_OFF);
drivers/infiniband/hw/efa/efa_com.c
165
static int efa_com_admin_init_cq(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
167
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com.c
187
writel(addr_low, edev->reg_bar + EFA_REGS_ACQ_BASE_LO_OFF);
drivers/infiniband/hw/efa/efa_com.c
188
writel(addr_high, edev->reg_bar + EFA_REGS_ACQ_BASE_HI_OFF);
drivers/infiniband/hw/efa/efa_com.c
196
writel(acq_caps, edev->reg_bar + EFA_REGS_ACQ_CAPS_OFF);
drivers/infiniband/hw/efa/efa_com.c
201
static int efa_com_admin_init_aenq(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com.c
204
struct efa_com_aenq *aenq = &edev->aenq;
drivers/infiniband/hw/efa/efa_com.c
210
ibdev_err(edev->efa_dev, "aenq handlers pointer is NULL\n");
drivers/infiniband/hw/efa/efa_com.c
215
aenq->entries = dma_alloc_coherent(edev->dmadev, size, &aenq->dma_addr,
drivers/infiniband/hw/efa/efa_com.c
228
writel(addr_low, edev->reg_bar + EFA_REGS_AENQ_BASE_LO_OFF);
drivers/infiniband/hw/efa/efa_com.c
229
writel(addr_high, edev->reg_bar + EFA_REGS_AENQ_BASE_HI_OFF);
drivers/infiniband/hw/efa/efa_com.c
236
writel(aenq_caps, edev->reg_bar + EFA_REGS_AENQ_CAPS_OFF);
drivers/infiniband/hw/efa/efa_com.c
242
writel(edev->aenq.cc, edev->reg_bar + EFA_REGS_AENQ_CONS_DB_OFF);
drivers/infiniband/hw/efa/efa_com.c
670
void efa_com_admin_destroy(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
672
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com.c
673
struct efa_com_aenq *aenq = &edev->aenq;
drivers/infiniband/hw/efa/efa_com.c
680
devm_kfree(edev->dmadev, aq->comp_ctx_pool);
drivers/infiniband/hw/efa/efa_com.c
681
devm_kfree(edev->dmadev, aq->comp_ctx);
drivers/infiniband/hw/efa/efa_com.c
684
dma_free_coherent(edev->dmadev, size, sq->entries, sq->dma_addr);
drivers/infiniband/hw/efa/efa_com.c
687
dma_free_coherent(edev->dmadev, size, cq->entries, cq->dma_addr);
drivers/infiniband/hw/efa/efa_com.c
690
dma_free_coherent(edev->dmadev, size, aenq->entries, aenq->dma_addr);
drivers/infiniband/hw/efa/efa_com.c
700
void efa_com_set_admin_polling_mode(struct efa_com_dev *edev, bool polling)
drivers/infiniband/hw/efa/efa_com.c
707
writel(mask_value, edev->reg_bar + EFA_REGS_INTR_MASK_OFF);
drivers/infiniband/hw/efa/efa_com.c
709
set_bit(EFA_AQ_STATE_POLLING_BIT, &edev->aq.state);
drivers/infiniband/hw/efa/efa_com.c
711
clear_bit(EFA_AQ_STATE_POLLING_BIT, &edev->aq.state);
drivers/infiniband/hw/efa/efa_com.c
714
static void efa_com_stats_init(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
716
atomic64_t *s = (atomic64_t *)&edev->aq.stats;
drivers/infiniband/hw/efa/efa_com.c
719
for (i = 0; i < sizeof(edev->aq.stats) / sizeof(*s); i++, s++)
drivers/infiniband/hw/efa/efa_com.c
733
int efa_com_admin_init(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com.c
736
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com.c
742
dev_sts = efa_com_reg_read32(edev, EFA_REGS_DEV_STS_OFF);
drivers/infiniband/hw/efa/efa_com.c
744
ibdev_err(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com.c
751
aq->dmadev = edev->dmadev;
drivers/infiniband/hw/efa/efa_com.c
752
aq->efa_dev = edev->efa_dev;
drivers/infiniband/hw/efa/efa_com.c
757
efa_com_stats_init(edev);
drivers/infiniband/hw/efa/efa_com.c
76
static u32 efa_com_reg_read32(struct efa_com_dev *edev, u16 offset)
drivers/infiniband/hw/efa/efa_com.c
763
err = efa_com_admin_init_sq(edev);
drivers/infiniband/hw/efa/efa_com.c
767
err = efa_com_admin_init_cq(edev);
drivers/infiniband/hw/efa/efa_com.c
771
efa_com_set_admin_polling_mode(edev, false);
drivers/infiniband/hw/efa/efa_com.c
773
err = efa_com_admin_init_aenq(edev, aenq_handlers);
drivers/infiniband/hw/efa/efa_com.c
777
cap = efa_com_reg_read32(edev, EFA_REGS_CAPS_OFF);
drivers/infiniband/hw/efa/efa_com.c
78
struct efa_com_mmio_read *mmio_read = &edev->mmio_read;
drivers/infiniband/hw/efa/efa_com.c
792
dma_free_coherent(edev->dmadev, aq->depth * sizeof(*aq->cq.entries),
drivers/infiniband/hw/efa/efa_com.c
795
dma_free_coherent(edev->dmadev, aq->depth * sizeof(*aq->sq.entries),
drivers/infiniband/hw/efa/efa_com.c
798
devm_kfree(edev->dmadev, aq->comp_ctx);
drivers/infiniband/hw/efa/efa_com.c
812
void efa_com_admin_q_comp_intr_handler(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
816
spin_lock_irqsave(&edev->aq.cq.lock, flags);
drivers/infiniband/hw/efa/efa_com.c
817
efa_com_handle_admin_completion(&edev->aq);
drivers/infiniband/hw/efa/efa_com.c
818
spin_unlock_irqrestore(&edev->aq.cq.lock, flags);
drivers/infiniband/hw/efa/efa_com.c
825
static efa_aenq_handler efa_com_get_specific_aenq_cb(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com.c
828
struct efa_aenq_handlers *aenq_handlers = edev->aenq.aenq_handlers;
drivers/infiniband/hw/efa/efa_com.c
843
void efa_com_aenq_intr_handler(struct efa_com_dev *edev, void *data)
drivers/infiniband/hw/efa/efa_com.c
846
struct efa_com_aenq *aenq = &edev->aenq;
drivers/infiniband/hw/efa/efa_com.c
868
handler_cb = efa_com_get_specific_aenq_cb(edev,
drivers/infiniband/hw/efa/efa_com.c
892
writel(aenq->cc, edev->reg_bar + EFA_REGS_AENQ_CONS_DB_OFF);
drivers/infiniband/hw/efa/efa_com.c
895
static void efa_com_mmio_reg_read_resp_addr_init(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
897
struct efa_com_mmio_read *mmio_read = &edev->mmio_read;
drivers/infiniband/hw/efa/efa_com.c
905
writel(addr_high, edev->reg_bar + EFA_REGS_MMIO_RESP_HI_OFF);
drivers/infiniband/hw/efa/efa_com.c
906
writel(addr_low, edev->reg_bar + EFA_REGS_MMIO_RESP_LO_OFF);
drivers/infiniband/hw/efa/efa_com.c
909
int efa_com_mmio_reg_read_init(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
911
struct efa_com_mmio_read *mmio_read = &edev->mmio_read;
drivers/infiniband/hw/efa/efa_com.c
915
dma_alloc_coherent(edev->dmadev, sizeof(*mmio_read->read_resp),
drivers/infiniband/hw/efa/efa_com.c
920
efa_com_mmio_reg_read_resp_addr_init(edev);
drivers/infiniband/hw/efa/efa_com.c
929
void efa_com_mmio_reg_read_destroy(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
931
struct efa_com_mmio_read *mmio_read = &edev->mmio_read;
drivers/infiniband/hw/efa/efa_com.c
933
dma_free_coherent(edev->dmadev, sizeof(*mmio_read->read_resp),
drivers/infiniband/hw/efa/efa_com.c
937
int efa_com_validate_version(struct efa_com_dev *edev)
drivers/infiniband/hw/efa/efa_com.c
949
ver = efa_com_reg_read32(edev, EFA_REGS_VERSION_OFF);
drivers/infiniband/hw/efa/efa_com.c
95
writel(mmio_read_reg, edev->reg_bar + EFA_REGS_MMIO_REG_READ_OFF);
drivers/infiniband/hw/efa/efa_com.c
950
ctrl_ver = efa_com_reg_read32(edev,
drivers/infiniband/hw/efa/efa_com.c
953
ibdev_dbg(edev->efa_dev, "efa device version: %d.%d\n",
drivers/infiniband/hw/efa/efa_com.c
962
ibdev_err(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com.c
968
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com.c
990
ibdev_err(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com.h
119
struct efa_com_dev *edev;
drivers/infiniband/hw/efa/efa_com.h
155
int efa_com_admin_init(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com.h
157
void efa_com_admin_destroy(struct efa_com_dev *edev);
drivers/infiniband/hw/efa/efa_com.h
158
int efa_com_eq_init(struct efa_com_dev *edev, struct efa_com_eq *eeq,
drivers/infiniband/hw/efa/efa_com.h
160
void efa_com_eq_destroy(struct efa_com_dev *edev, struct efa_com_eq *eeq);
drivers/infiniband/hw/efa/efa_com.h
161
int efa_com_dev_reset(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com.h
163
void efa_com_set_admin_polling_mode(struct efa_com_dev *edev, bool polling);
drivers/infiniband/hw/efa/efa_com.h
164
void efa_com_admin_q_comp_intr_handler(struct efa_com_dev *edev);
drivers/infiniband/hw/efa/efa_com.h
165
int efa_com_mmio_reg_read_init(struct efa_com_dev *edev);
drivers/infiniband/hw/efa/efa_com.h
166
void efa_com_mmio_reg_read_destroy(struct efa_com_dev *edev);
drivers/infiniband/hw/efa/efa_com.h
168
int efa_com_validate_version(struct efa_com_dev *edev);
drivers/infiniband/hw/efa/efa_com.h
169
int efa_com_get_dma_width(struct efa_com_dev *edev);
drivers/infiniband/hw/efa/efa_com.h
176
void efa_com_aenq_intr_handler(struct efa_com_dev *edev, void *data);
drivers/infiniband/hw/efa/efa_com.h
177
void efa_com_eq_comp_intr_handler(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
113
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
128
int efa_com_destroy_qp(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
133
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
145
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
15
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
154
int efa_com_create_cq(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
160
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
189
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
203
int efa_com_destroy_cq(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
208
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
221
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
230
int efa_com_register_mr(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
235
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
270
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
290
int efa_com_dereg_mr(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
294
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
307
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
316
int efa_com_create_ah(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
321
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
336
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
347
int efa_com_destroy_ah(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
352
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
365
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
375
efa_com_check_supported_feature_id(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
382
!(edev->supported_features & feature_mask))
drivers/infiniband/hw/efa/efa_com_cmd.c
388
static int efa_com_get_feature_ex(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
398
if (!efa_com_check_supported_feature_id(edev, feature_id)) {
drivers/infiniband/hw/efa/efa_com_cmd.c
399
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
405
aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
429
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
438
static int efa_com_get_feature(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
442
return efa_com_get_feature_ex(edev, get_resp, feature_id, 0, 0);
drivers/infiniband/hw/efa/efa_com_cmd.c
445
int efa_com_get_device_attr(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
45
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
451
err = efa_com_get_feature(edev, &resp, EFA_ADMIN_DEVICE_ATTR);
drivers/infiniband/hw/efa/efa_com_cmd.c
453
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
474
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
480
edev->supported_features = resp.u.device_attr.supported_features;
drivers/infiniband/hw/efa/efa_com_cmd.c
481
err = efa_com_get_feature(edev, &resp,
drivers/infiniband/hw/efa/efa_com_cmd.c
484
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
508
err = efa_com_get_feature(edev, &resp, EFA_ADMIN_NETWORK_ATTR);
drivers/infiniband/hw/efa/efa_com_cmd.c
510
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
520
if (efa_com_check_supported_feature_id(edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
522
err = efa_com_get_feature(edev, &resp,
drivers/infiniband/hw/efa/efa_com_cmd.c
526
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
540
int efa_com_get_hw_hints(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
546
err = efa_com_get_feature(edev, &resp, EFA_ADMIN_HW_HINTS);
drivers/infiniband/hw/efa/efa_com_cmd.c
548
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
561
int efa_com_set_feature_ex(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
571
if (!efa_com_check_supported_feature_id(edev, feature_id)) {
drivers/infiniband/hw/efa/efa_com_cmd.c
572
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
578
aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
600
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
609
static int efa_com_set_feature(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
61
int efa_com_modify_qp(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
614
return efa_com_set_feature_ex(edev, set_resp, set_cmd, feature_id,
drivers/infiniband/hw/efa/efa_com_cmd.c
618
int efa_com_set_aenq_config(struct efa_com_dev *edev, u32 groups)
drivers/infiniband/hw/efa/efa_com_cmd.c
625
ibdev_dbg(edev->efa_dev, "Configuring aenq with groups[%#x]\n", groups);
drivers/infiniband/hw/efa/efa_com_cmd.c
627
err = efa_com_get_feature(edev, &get_resp, EFA_ADMIN_AENQ_CONFIG);
drivers/infiniband/hw/efa/efa_com_cmd.c
629
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
635
ibdev_dbg(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
64
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
642
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
649
err = efa_com_set_feature(edev, &set_resp, &cmd,
drivers/infiniband/hw/efa/efa_com_cmd.c
652
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
661
int efa_com_alloc_pd(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
664
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
677
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
687
int efa_com_dealloc_pd(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
690
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
704
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
713
int efa_com_alloc_uar(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
716
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
729
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
739
int efa_com_dealloc_uar(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
742
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
756
ibdev_err_ratelimited(edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
765
int efa_com_get_stats(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
769
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.c
791
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
86
edev->efa_dev,
drivers/infiniband/hw/efa/efa_com_cmd.c
9
int efa_com_create_qp(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
95
int efa_com_query_qp(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.c
99
struct efa_com_admin_queue *aq = &edev->aq;
drivers/infiniband/hw/efa/efa_com_cmd.h
302
int efa_com_create_qp(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
305
int efa_com_modify_qp(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
307
int efa_com_query_qp(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
310
int efa_com_destroy_qp(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
312
int efa_com_create_cq(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
315
int efa_com_destroy_cq(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
317
int efa_com_register_mr(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
320
int efa_com_dereg_mr(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
322
int efa_com_create_ah(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
325
int efa_com_destroy_ah(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
327
int efa_com_get_device_attr(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
329
int efa_com_get_hw_hints(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
332
efa_com_check_supported_feature_id(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
334
int efa_com_set_feature_ex(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
340
int efa_com_set_aenq_config(struct efa_com_dev *edev, u32 groups);
drivers/infiniband/hw/efa/efa_com_cmd.h
341
int efa_com_alloc_pd(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
343
int efa_com_dealloc_pd(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
345
int efa_com_alloc_uar(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
347
int efa_com_dealloc_uar(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_com_cmd.h
349
int efa_com_get_stats(struct efa_com_dev *edev,
drivers/infiniband/hw/efa/efa_main.c
111
struct efa_com_dev *edev = eq->eeq.edev;
drivers/infiniband/hw/efa/efa_main.c
113
efa_com_eq_comp_intr_handler(edev, &eq->eeq);
drivers/infiniband/hw/efa/efa_main.c
122
efa_com_admin_q_comp_intr_handler(&dev->edev);
drivers/infiniband/hw/efa/efa_main.c
123
efa_com_aenq_intr_handler(&dev->edev, data);
drivers/infiniband/hw/efa/efa_main.c
232
struct efa_com_dev *edev = &dev->edev;
drivers/infiniband/hw/efa/efa_main.c
235
edev->mmio_read.mmio_read_timeout =
drivers/infiniband/hw/efa/efa_main.c
239
edev->aq.poll_interval = hw_hints->poll_interval;
drivers/infiniband/hw/efa/efa_main.c
242
edev->aq.completion_timeout =
drivers/infiniband/hw/efa/efa_main.c
263
if (!efa_com_check_supported_feature_id(&dev->edev,
drivers/infiniband/hw/efa/efa_main.c
295
efa_com_set_feature_ex(&dev->edev, &resp, &cmd, EFA_ADMIN_HOST_INFO,
drivers/infiniband/hw/efa/efa_main.c
303
efa_com_eq_destroy(&dev->edev, &eq->eeq);
drivers/infiniband/hw/efa/efa_main.c
316
err = efa_com_eq_init(&dev->edev, &eq->eeq, efa_process_eqe,
drivers/infiniband/hw/efa/efa_main.c
413
err = efa_com_get_device_attr(&dev->edev, &dev->dev_attr);
drivers/infiniband/hw/efa/efa_main.c
422
err = efa_com_get_hw_hints(&dev->edev, &hw_hints);
drivers/infiniband/hw/efa/efa_main.c
429
err = efa_com_set_aenq_config(&dev->edev, EFA_AENQ_ENABLED_GROUPS);
drivers/infiniband/hw/efa/efa_main.c
507
static int efa_device_init(struct efa_com_dev *edev, struct pci_dev *pdev)
drivers/infiniband/hw/efa/efa_main.c
512
err = efa_com_dev_reset(edev, EFA_REGS_RESET_NORMAL);
drivers/infiniband/hw/efa/efa_main.c
516
err = efa_com_validate_version(edev);
drivers/infiniband/hw/efa/efa_main.c
520
dma_width = efa_com_get_dma_width(edev);
drivers/infiniband/hw/efa/efa_main.c
538
struct efa_com_dev *edev;
drivers/infiniband/hw/efa/efa_main.c
559
edev = &dev->edev;
drivers/infiniband/hw/efa/efa_main.c
560
edev->efa_dev = dev;
drivers/infiniband/hw/efa/efa_main.c
561
edev->dmadev = &pdev->dev;
drivers/infiniband/hw/efa/efa_main.c
584
edev->reg_bar = devm_ioremap(&pdev->dev,
drivers/infiniband/hw/efa/efa_main.c
587
if (!edev->reg_bar) {
drivers/infiniband/hw/efa/efa_main.c
593
err = efa_com_mmio_reg_read_init(edev);
drivers/infiniband/hw/efa/efa_main.c
599
err = efa_device_init(edev, pdev);
drivers/infiniband/hw/efa/efa_main.c
611
edev->aq.msix_vector_idx = dev->admin_msix_vector_idx;
drivers/infiniband/hw/efa/efa_main.c
612
edev->aenq.msix_vector_idx = dev->admin_msix_vector_idx;
drivers/infiniband/hw/efa/efa_main.c
618
err = efa_com_admin_init(edev, &aenq_handlers);
drivers/infiniband/hw/efa/efa_main.c
629
efa_com_mmio_reg_read_destroy(edev);
drivers/infiniband/hw/efa/efa_main.c
631
devm_iounmap(&pdev->dev, edev->reg_bar);
drivers/infiniband/hw/efa/efa_main.c
645
struct efa_com_dev *edev;
drivers/infiniband/hw/efa/efa_main.c
647
edev = &dev->edev;
drivers/infiniband/hw/efa/efa_main.c
648
efa_com_dev_reset(edev, reset_reason);
drivers/infiniband/hw/efa/efa_main.c
649
efa_com_admin_destroy(edev);
drivers/infiniband/hw/efa/efa_main.c
652
efa_com_mmio_reg_read_destroy(edev);
drivers/infiniband/hw/efa/efa_main.c
653
devm_iounmap(&pdev->dev, edev->reg_bar);
drivers/infiniband/hw/efa/efa_main.c
693
efa_com_dev_reset(&dev->edev, EFA_REGS_RESET_SHUTDOWN);
drivers/infiniband/hw/efa/efa_main.c
96
struct efa_dev *dev = container_of(eeq->edev, struct efa_dev, edev);
drivers/infiniband/hw/efa/efa_verbs.c
1054
err = efa_com_modify_qp(&dev->edev, ¶ms);
drivers/infiniband/hw/efa/efa_verbs.c
1067
return efa_com_destroy_cq(&dev->edev, ¶ms);
drivers/infiniband/hw/efa/efa_verbs.c
1252
err = efa_com_create_cq(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
1728
err = efa_com_register_mr(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
1736
err = efa_com_register_mr(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
1891
err = efa_com_dereg_mr(&dev->edev, ¶ms);
drivers/infiniband/hw/efa/efa_verbs.c
1925
return efa_com_dealloc_uar(&dev->edev, ¶ms);
drivers/infiniband/hw/efa/efa_verbs.c
1981
err = efa_com_alloc_uar(&dev->edev, &result);
drivers/infiniband/hw/efa/efa_verbs.c
2108
return efa_com_destroy_ah(&dev->edev, ¶ms);
drivers/infiniband/hw/efa/efa_verbs.c
2140
err = efa_com_create_ah(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
2204
struct efa_com_stats_admin *as = &dev->edev.aq.stats;
drivers/infiniband/hw/efa/efa_verbs.c
2240
err = efa_com_get_stats(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
2252
err = efa_com_get_stats(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
2263
err = efa_com_get_stats(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
2275
err = efa_com_get_stats(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
2287
err = efa_com_get_stats(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
373
err = efa_com_query_qp(&dev->edev, ¶ms, &result);
drivers/infiniband/hw/efa/efa_verbs.c
425
return efa_com_dealloc_pd(&dev->edev, ¶ms);
drivers/infiniband/hw/efa/efa_verbs.c
444
err = efa_com_alloc_pd(&dev->edev, &result);
drivers/infiniband/hw/efa/efa_verbs.c
486
return efa_com_destroy_qp(&dev->edev, ¶ms);
drivers/infiniband/hw/efa/efa_verbs.c
787
err = efa_com_create_qp(&dev->edev, &create_qp_params,
drivers/input/keyboard/goldfish_events.c
105
struct event_dev *edev;
drivers/input/keyboard/goldfish_events.c
128
edev = devm_kzalloc(&pdev->dev,
drivers/input/keyboard/goldfish_events.c
131
if (!edev)
drivers/input/keyboard/goldfish_events.c
138
edev->input = input_dev;
drivers/input/keyboard/goldfish_events.c
139
edev->addr = addr;
drivers/input/keyboard/goldfish_events.c
140
edev->irq = irq;
drivers/input/keyboard/goldfish_events.c
143
edev->name[i] = __raw_readb(edev->addr + REG_DATA + i);
drivers/input/keyboard/goldfish_events.c
145
pr_debug("%s: keymap=%s\n", __func__, edev->name);
drivers/input/keyboard/goldfish_events.c
147
input_dev->name = edev->name;
drivers/input/keyboard/goldfish_events.c
150
events_import_bits(edev, input_dev->evbit, EV_SYN, EV_MAX);
drivers/input/keyboard/goldfish_events.c
151
events_import_bits(edev, input_dev->keybit, EV_KEY, KEY_MAX);
drivers/input/keyboard/goldfish_events.c
152
events_import_bits(edev, input_dev->relbit, EV_REL, REL_MAX);
drivers/input/keyboard/goldfish_events.c
153
events_import_bits(edev, input_dev->absbit, EV_ABS, ABS_MAX);
drivers/input/keyboard/goldfish_events.c
154
events_import_bits(edev, input_dev->mscbit, EV_MSC, MSC_MAX);
drivers/input/keyboard/goldfish_events.c
155
events_import_bits(edev, input_dev->ledbit, EV_LED, LED_MAX);
drivers/input/keyboard/goldfish_events.c
156
events_import_bits(edev, input_dev->sndbit, EV_SND, SND_MAX);
drivers/input/keyboard/goldfish_events.c
157
events_import_bits(edev, input_dev->ffbit, EV_FF, FF_MAX);
drivers/input/keyboard/goldfish_events.c
158
events_import_bits(edev, input_dev->swbit, EV_SW, SW_MAX);
drivers/input/keyboard/goldfish_events.c
160
events_import_abs_params(edev);
drivers/input/keyboard/goldfish_events.c
162
error = devm_request_irq(&pdev->dev, edev->irq, events_interrupt, 0,
drivers/input/keyboard/goldfish_events.c
163
"goldfish-events-keypad", edev);
drivers/input/keyboard/goldfish_events.c
38
struct event_dev *edev = dev_id;
drivers/input/keyboard/goldfish_events.c
41
type = __raw_readl(edev->addr + REG_READ);
drivers/input/keyboard/goldfish_events.c
42
code = __raw_readl(edev->addr + REG_READ);
drivers/input/keyboard/goldfish_events.c
43
value = __raw_readl(edev->addr + REG_READ);
drivers/input/keyboard/goldfish_events.c
45
input_event(edev->input, type, code, value);
drivers/input/keyboard/goldfish_events.c
46
input_sync(edev->input);
drivers/input/keyboard/goldfish_events.c
50
static void events_import_bits(struct event_dev *edev,
drivers/input/keyboard/goldfish_events.c
53
void __iomem *addr = edev->addr;
drivers/input/keyboard/goldfish_events.c
73
static void events_import_abs_params(struct event_dev *edev)
drivers/input/keyboard/goldfish_events.c
75
struct input_dev *input_dev = edev->input;
drivers/input/keyboard/goldfish_events.c
76
void __iomem *addr = edev->addr;
drivers/input/keyboard/goldfish_events.c
94
val[j] = __raw_readl(edev->addr + REG_DATA + offset);
drivers/message/fusion/mptsas.c
2859
u64 sas_address, struct sas_expander_device *edev)
drivers/message/fusion/mptsas.c
2967
memtostr(edev->vendor_id, manufacture_reply->vendor_id);
drivers/message/fusion/mptsas.c
2968
memtostr(edev->product_id, manufacture_reply->product_id);
drivers/message/fusion/mptsas.c
2969
memtostr(edev->product_rev, manufacture_reply->product_rev);
drivers/message/fusion/mptsas.c
2970
edev->level = manufacture_reply->sas_format;
drivers/message/fusion/mptsas.c
2972
memtostr(edev->component_vendor_id,
drivers/message/fusion/mptsas.c
2975
edev->component_id = tmp[0] << 8 | tmp[1];
drivers/message/fusion/mptsas.c
2976
edev->component_revision_id =
drivers/misc/eeprom/eeprom_93xx46.c
101
static inline bool has_quirk_extra_read_cycle(struct eeprom_93xx46_dev *edev)
drivers/misc/eeprom/eeprom_93xx46.c
103
return edev->pdata->quirks & EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE;
drivers/misc/eeprom/eeprom_93xx46.c
109
struct eeprom_93xx46_dev *edev = priv;
drivers/misc/eeprom/eeprom_93xx46.c
114
if (unlikely(off >= edev->size))
drivers/misc/eeprom/eeprom_93xx46.c
116
if ((off + count) > edev->size)
drivers/misc/eeprom/eeprom_93xx46.c
117
count = edev->size - off;
drivers/misc/eeprom/eeprom_93xx46.c
121
mutex_lock(&edev->lock);
drivers/misc/eeprom/eeprom_93xx46.c
123
gpiod_set_value_cansleep(edev->pdata->select, 1);
drivers/misc/eeprom/eeprom_93xx46.c
126
bits = edev->addrlen + 3;
drivers/misc/eeprom/eeprom_93xx46.c
131
u16 cmd_addr = OP_READ << edev->addrlen;
drivers/misc/eeprom/eeprom_93xx46.c
134
if (edev->pdata->flags & EE_ADDR8) {
drivers/misc/eeprom/eeprom_93xx46.c
136
if (has_quirk_single_word_read(edev))
drivers/misc/eeprom/eeprom_93xx46.c
140
if (has_quirk_single_word_read(edev))
drivers/misc/eeprom/eeprom_93xx46.c
144
dev_dbg(&edev->spi->dev, "read cmd 0x%x, %d Hz\n",
drivers/misc/eeprom/eeprom_93xx46.c
145
cmd_addr, edev->spi->max_speed_hz);
drivers/misc/eeprom/eeprom_93xx46.c
147
if (has_quirk_extra_read_cycle(edev)) {
drivers/misc/eeprom/eeprom_93xx46.c
162
err = spi_sync(edev->spi, &m);
drivers/misc/eeprom/eeprom_93xx46.c
167
dev_err(&edev->spi->dev, "read %zu bytes at %u: err. %d\n",
drivers/misc/eeprom/eeprom_93xx46.c
177
gpiod_set_value_cansleep(edev->pdata->select, 0);
drivers/misc/eeprom/eeprom_93xx46.c
179
mutex_unlock(&edev->lock);
drivers/misc/eeprom/eeprom_93xx46.c
184
static int eeprom_93xx46_ew(struct eeprom_93xx46_dev *edev, int is_on)
drivers/misc/eeprom/eeprom_93xx46.c
192
bits = edev->addrlen + 3;
drivers/misc/eeprom/eeprom_93xx46.c
194
cmd_addr = OP_START << edev->addrlen;
drivers/misc/eeprom/eeprom_93xx46.c
195
cmd_addr |= (is_on ? ADDR_EWEN : ADDR_EWDS) << (edev->addrlen - 6);
drivers/misc/eeprom/eeprom_93xx46.c
197
if (has_quirk_instruction_length(edev)) {
drivers/misc/eeprom/eeprom_93xx46.c
202
dev_dbg(&edev->spi->dev, "ew %s cmd 0x%04x, %d bits\n",
drivers/misc/eeprom/eeprom_93xx46.c
211
mutex_lock(&edev->lock);
drivers/misc/eeprom/eeprom_93xx46.c
213
gpiod_set_value_cansleep(edev->pdata->select, 1);
drivers/misc/eeprom/eeprom_93xx46.c
215
ret = spi_sync(edev->spi, &m);
drivers/misc/eeprom/eeprom_93xx46.c
219
dev_err(&edev->spi->dev, "erase/write %s error %d\n",
drivers/misc/eeprom/eeprom_93xx46.c
222
gpiod_set_value_cansleep(edev->pdata->select, 0);
drivers/misc/eeprom/eeprom_93xx46.c
224
mutex_unlock(&edev->lock);
drivers/misc/eeprom/eeprom_93xx46.c
229
eeprom_93xx46_write_word(struct eeprom_93xx46_dev *edev,
drivers/misc/eeprom/eeprom_93xx46.c
237
if (unlikely(off >= edev->size))
drivers/misc/eeprom/eeprom_93xx46.c
241
bits = edev->addrlen + 3;
drivers/misc/eeprom/eeprom_93xx46.c
243
cmd_addr = OP_WRITE << edev->addrlen;
drivers/misc/eeprom/eeprom_93xx46.c
245
if (edev->pdata->flags & EE_ADDR8) {
drivers/misc/eeprom/eeprom_93xx46.c
253
dev_dbg(&edev->spi->dev, "write cmd 0x%x\n", cmd_addr);
drivers/misc/eeprom/eeprom_93xx46.c
265
ret = spi_sync(edev->spi, &m);
drivers/misc/eeprom/eeprom_93xx46.c
274
struct eeprom_93xx46_dev *edev = priv;
drivers/misc/eeprom/eeprom_93xx46.c
279
if (unlikely(off >= edev->size))
drivers/misc/eeprom/eeprom_93xx46.c
281
if ((off + count) > edev->size)
drivers/misc/eeprom/eeprom_93xx46.c
282
count = edev->size - off;
drivers/misc/eeprom/eeprom_93xx46.c
287
if (edev->pdata->flags & EE_ADDR16) {
drivers/misc/eeprom/eeprom_93xx46.c
293
ret = eeprom_93xx46_ew(edev, 1);
drivers/misc/eeprom/eeprom_93xx46.c
297
mutex_lock(&edev->lock);
drivers/misc/eeprom/eeprom_93xx46.c
299
gpiod_set_value_cansleep(edev->pdata->select, 1);
drivers/misc/eeprom/eeprom_93xx46.c
302
ret = eeprom_93xx46_write_word(edev, &buf[i], off + i);
drivers/misc/eeprom/eeprom_93xx46.c
304
dev_err(&edev->spi->dev, "write failed at %u: %d\n", off + i, ret);
drivers/misc/eeprom/eeprom_93xx46.c
309
gpiod_set_value_cansleep(edev->pdata->select, 0);
drivers/misc/eeprom/eeprom_93xx46.c
311
mutex_unlock(&edev->lock);
drivers/misc/eeprom/eeprom_93xx46.c
314
eeprom_93xx46_ew(edev, 0);
drivers/misc/eeprom/eeprom_93xx46.c
318
static int eeprom_93xx46_eral(struct eeprom_93xx46_dev *edev)
drivers/misc/eeprom/eeprom_93xx46.c
326
bits = edev->addrlen + 3;
drivers/misc/eeprom/eeprom_93xx46.c
328
cmd_addr = OP_START << edev->addrlen;
drivers/misc/eeprom/eeprom_93xx46.c
329
cmd_addr |= ADDR_ERAL << (edev->addrlen - 6);
drivers/misc/eeprom/eeprom_93xx46.c
331
if (has_quirk_instruction_length(edev)) {
drivers/misc/eeprom/eeprom_93xx46.c
336
dev_dbg(&edev->spi->dev, "eral cmd 0x%04x, %d bits\n", cmd_addr, bits);
drivers/misc/eeprom/eeprom_93xx46.c
344
mutex_lock(&edev->lock);
drivers/misc/eeprom/eeprom_93xx46.c
346
gpiod_set_value_cansleep(edev->pdata->select, 1);
drivers/misc/eeprom/eeprom_93xx46.c
348
ret = spi_sync(edev->spi, &m);
drivers/misc/eeprom/eeprom_93xx46.c
350
dev_err(&edev->spi->dev, "erase error %d\n", ret);
drivers/misc/eeprom/eeprom_93xx46.c
354
gpiod_set_value_cansleep(edev->pdata->select, 0);
drivers/misc/eeprom/eeprom_93xx46.c
356
mutex_unlock(&edev->lock);
drivers/misc/eeprom/eeprom_93xx46.c
363
struct eeprom_93xx46_dev *edev = dev_get_drvdata(dev);
drivers/misc/eeprom/eeprom_93xx46.c
372
ret = eeprom_93xx46_ew(edev, 1);
drivers/misc/eeprom/eeprom_93xx46.c
375
ret = eeprom_93xx46_eral(edev);
drivers/misc/eeprom/eeprom_93xx46.c
378
ret = eeprom_93xx46_ew(edev, 0);
drivers/misc/eeprom/eeprom_93xx46.c
462
struct eeprom_93xx46_dev *edev;
drivers/misc/eeprom/eeprom_93xx46.c
476
edev = devm_kzalloc(&spi->dev, sizeof(*edev), GFP_KERNEL);
drivers/misc/eeprom/eeprom_93xx46.c
477
if (!edev)
drivers/misc/eeprom/eeprom_93xx46.c
481
edev->size = 128;
drivers/misc/eeprom/eeprom_93xx46.c
483
edev->size = 256;
drivers/misc/eeprom/eeprom_93xx46.c
485
edev->size = 512;
drivers/misc/eeprom/eeprom_93xx46.c
492
edev->addrlen = ilog2(edev->size);
drivers/misc/eeprom/eeprom_93xx46.c
494
edev->addrlen = ilog2(edev->size) - 1;
drivers/misc/eeprom/eeprom_93xx46.c
500
mutex_init(&edev->lock);
drivers/misc/eeprom/eeprom_93xx46.c
502
edev->spi = spi;
drivers/misc/eeprom/eeprom_93xx46.c
503
edev->pdata = pd;
drivers/misc/eeprom/eeprom_93xx46.c
505
edev->nvmem_config.type = NVMEM_TYPE_EEPROM;
drivers/misc/eeprom/eeprom_93xx46.c
506
edev->nvmem_config.name = dev_name(&spi->dev);
drivers/misc/eeprom/eeprom_93xx46.c
507
edev->nvmem_config.dev = &spi->dev;
drivers/misc/eeprom/eeprom_93xx46.c
508
edev->nvmem_config.read_only = pd->flags & EE_READONLY;
drivers/misc/eeprom/eeprom_93xx46.c
509
edev->nvmem_config.root_only = true;
drivers/misc/eeprom/eeprom_93xx46.c
510
edev->nvmem_config.owner = THIS_MODULE;
drivers/misc/eeprom/eeprom_93xx46.c
511
edev->nvmem_config.compat = true;
drivers/misc/eeprom/eeprom_93xx46.c
512
edev->nvmem_config.base_dev = &spi->dev;
drivers/misc/eeprom/eeprom_93xx46.c
513
edev->nvmem_config.reg_read = eeprom_93xx46_read;
drivers/misc/eeprom/eeprom_93xx46.c
514
edev->nvmem_config.reg_write = eeprom_93xx46_write;
drivers/misc/eeprom/eeprom_93xx46.c
515
edev->nvmem_config.priv = edev;
drivers/misc/eeprom/eeprom_93xx46.c
516
edev->nvmem_config.stride = 4;
drivers/misc/eeprom/eeprom_93xx46.c
517
edev->nvmem_config.word_size = 1;
drivers/misc/eeprom/eeprom_93xx46.c
518
edev->nvmem_config.size = edev->size;
drivers/misc/eeprom/eeprom_93xx46.c
520
edev->nvmem = devm_nvmem_register(&spi->dev, &edev->nvmem_config);
drivers/misc/eeprom/eeprom_93xx46.c
521
if (IS_ERR(edev->nvmem))
drivers/misc/eeprom/eeprom_93xx46.c
522
return PTR_ERR(edev->nvmem);
drivers/misc/eeprom/eeprom_93xx46.c
526
edev->size,
drivers/misc/eeprom/eeprom_93xx46.c
534
spi_set_drvdata(spi, edev);
drivers/misc/eeprom/eeprom_93xx46.c
540
struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi);
drivers/misc/eeprom/eeprom_93xx46.c
542
if (!(edev->pdata->flags & EE_READONLY))
drivers/misc/eeprom/eeprom_93xx46.c
91
static inline bool has_quirk_single_word_read(struct eeprom_93xx46_dev *edev)
drivers/misc/eeprom/eeprom_93xx46.c
93
return edev->pdata->quirks & EEPROM_93XX46_QUIRK_SINGLE_WORD_READ;
drivers/misc/eeprom/eeprom_93xx46.c
96
static inline bool has_quirk_instruction_length(struct eeprom_93xx46_dev *edev)
drivers/misc/eeprom/eeprom_93xx46.c
98
return edev->pdata->quirks & EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH;
drivers/misc/enclosure.c
119
struct enclosure_device *edev =
drivers/misc/enclosure.c
120
kzalloc_flex(*edev, component, components);
drivers/misc/enclosure.c
125
if (!edev)
drivers/misc/enclosure.c
128
edev->components = components;
drivers/misc/enclosure.c
130
edev->edev.class = &enclosure_class;
drivers/misc/enclosure.c
131
edev->edev.parent = get_device(dev);
drivers/misc/enclosure.c
132
edev->cb = cb;
drivers/misc/enclosure.c
133
dev_set_name(&edev->edev, "%s", name);
drivers/misc/enclosure.c
134
err = device_register(&edev->edev);
drivers/misc/enclosure.c
139
edev->component[i].number = -1;
drivers/misc/enclosure.c
140
edev->component[i].slot = -1;
drivers/misc/enclosure.c
141
edev->component[i].power_status = -1;
drivers/misc/enclosure.c
145
list_add_tail(&edev->node, &container_list);
drivers/misc/enclosure.c
148
return edev;
drivers/misc/enclosure.c
151
put_device(edev->edev.parent);
drivers/misc/enclosure.c
152
kfree(edev);
drivers/misc/enclosure.c
164
void enclosure_unregister(struct enclosure_device *edev)
drivers/misc/enclosure.c
169
list_del(&edev->node);
drivers/misc/enclosure.c
172
for (i = 0; i < edev->components; i++)
drivers/misc/enclosure.c
173
if (edev->component[i].number != -1)
drivers/misc/enclosure.c
174
device_unregister(&edev->component[i].cdev);
drivers/misc/enclosure.c
177
edev->cb = &enclosure_null_callbacks;
drivers/misc/enclosure.c
178
device_unregister(&edev->edev);
drivers/misc/enclosure.c
227
struct enclosure_device *edev = to_enclosure_device(cdev);
drivers/misc/enclosure.c
230
kfree(edev);
drivers/misc/enclosure.c
245
enclosure_component_find_by_name(struct enclosure_device *edev,
drivers/misc/enclosure.c
252
if (!edev || !name || !name[0])
drivers/misc/enclosure.c
255
for (i = 0; i < edev->components; i++) {
drivers/misc/enclosure.c
256
ecomp = &edev->component[i];
drivers/misc/enclosure.c
282
enclosure_component_alloc(struct enclosure_device *edev,
drivers/misc/enclosure.c
292
if (number >= edev->components)
drivers/misc/enclosure.c
295
ecomp = &edev->component[number];
drivers/misc/enclosure.c
303
cdev->parent = get_device(&edev->edev);
drivers/misc/enclosure.c
313
while (enclosure_component_find_by_name(edev, newname))
drivers/misc/enclosure.c
364
int enclosure_add_device(struct enclosure_device *edev, int component,
drivers/misc/enclosure.c
370
if (!edev || component >= edev->components)
drivers/misc/enclosure.c
373
cdev = &edev->component[component];
drivers/misc/enclosure.c
400
int enclosure_remove_device(struct enclosure_device *edev, struct device *dev)
drivers/misc/enclosure.c
405
if (!edev || !dev)
drivers/misc/enclosure.c
408
for (i = 0; i < edev->components; i++) {
drivers/misc/enclosure.c
409
cdev = &edev->component[i];
drivers/misc/enclosure.c
428
struct enclosure_device *edev = to_enclosure_device(cdev);
drivers/misc/enclosure.c
430
return sysfs_emit(buf, "%d\n", edev->components);
drivers/misc/enclosure.c
438
struct enclosure_device *edev = to_enclosure_device(cdev);
drivers/misc/enclosure.c
440
if (edev->cb->show_id)
drivers/misc/enclosure.c
441
return edev->cb->show_id(edev, buf);
drivers/misc/enclosure.c
47
struct enclosure_device *edev;
drivers/misc/enclosure.c
479
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
482
if (edev->cb->get_fault)
drivers/misc/enclosure.c
483
edev->cb->get_fault(edev, ecomp);
drivers/misc/enclosure.c
491
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
495
if (edev->cb->set_fault)
drivers/misc/enclosure.c
496
edev->cb->set_fault(edev, ecomp, val);
drivers/misc/enclosure.c
50
edev = list_prepare_entry(start, &container_list, node);
drivers/misc/enclosure.c
503
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
506
if (edev->cb->get_status)
drivers/misc/enclosure.c
507
edev->cb->get_status(edev, ecomp);
drivers/misc/enclosure.c
515
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
52
put_device(&start->edev);
drivers/misc/enclosure.c
527
if (enclosure_status[i] && edev->cb->set_status) {
drivers/misc/enclosure.c
528
edev->cb->set_status(edev, ecomp, i);
drivers/misc/enclosure.c
537
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
54
list_for_each_entry_continue(edev, &container_list, node) {
drivers/misc/enclosure.c
540
if (edev->cb->get_active)
drivers/misc/enclosure.c
541
edev->cb->get_active(edev, ecomp);
drivers/misc/enclosure.c
549
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
55
struct device *parent = edev->edev.parent;
drivers/misc/enclosure.c
553
if (edev->cb->set_active)
drivers/misc/enclosure.c
554
edev->cb->set_active(edev, ecomp, val);
drivers/misc/enclosure.c
561
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
564
if (edev->cb->get_locate)
drivers/misc/enclosure.c
565
edev->cb->get_locate(edev, ecomp);
drivers/misc/enclosure.c
573
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
577
if (edev->cb->set_locate)
drivers/misc/enclosure.c
578
edev->cb->set_locate(edev, ecomp, val);
drivers/misc/enclosure.c
586
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
589
if (edev->cb->get_power_status)
drivers/misc/enclosure.c
590
edev->cb->get_power_status(edev, ecomp);
drivers/misc/enclosure.c
594
return (edev->cb->get_power_status) ? -EIO : -ENOTTY;
drivers/misc/enclosure.c
60
get_device(&edev->edev);
drivers/misc/enclosure.c
603
struct enclosure_device *edev = to_enclosure_device(cdev->parent);
drivers/misc/enclosure.c
616
if (edev->cb->set_power_status)
drivers/misc/enclosure.c
617
edev->cb->set_power_status(edev, ecomp, val);
drivers/misc/enclosure.c
62
return edev;
drivers/misc/enclosure.c
89
struct enclosure_device *edev;
drivers/misc/enclosure.c
92
list_for_each_entry(edev, &container_list, node) {
drivers/misc/enclosure.c
93
error = fn(edev, data);
drivers/net/ethernet/3com/3c509.c
563
struct eisa_device *edev;
drivers/net/ethernet/3com/3c509.c
567
edev = to_eisa_device (device);
drivers/net/ethernet/3com/3c509.c
568
ioaddr = edev->base_addr;
drivers/net/ethernet/3com/3c509.c
593
eisa_set_drvdata (edev, dev);
drivers/net/ethernet/3com/3c509.c
597
eisa_set_drvdata (edev, NULL);
drivers/net/ethernet/3com/3c59x.c
1102
struct eisa_device *edev = NULL;
drivers/net/ethernet/3com/3c59x.c
1114
if ((edev = DEVICE_EISA(gendev))) {
drivers/net/ethernet/3com/3c59x.c
1115
print_name = dev_name(&edev->dev);
drivers/net/ethernet/3com/3c59x.c
1225
if (edev)
drivers/net/ethernet/3com/3c59x.c
1226
eisa_set_drvdata(edev, dev);
drivers/net/ethernet/3com/3c59x.c
906
struct eisa_device *edev;
drivers/net/ethernet/3com/3c59x.c
908
edev = to_eisa_device(device);
drivers/net/ethernet/3com/3c59x.c
910
if (!request_region(edev->base_addr, VORTEX_TOTAL_SIZE, DRV_NAME))
drivers/net/ethernet/3com/3c59x.c
913
ioaddr = ioport_map(edev->base_addr, VORTEX_TOTAL_SIZE);
drivers/net/ethernet/3com/3c59x.c
916
edev->id.driver_data, vortex_cards_found)) {
drivers/net/ethernet/3com/3c59x.c
917
release_region(edev->base_addr, VORTEX_TOTAL_SIZE);
drivers/net/ethernet/3com/3c59x.c
928
struct eisa_device *edev;
drivers/net/ethernet/3com/3c59x.c
933
edev = to_eisa_device(device);
drivers/net/ethernet/3com/3c59x.c
934
dev = eisa_get_drvdata(edev);
drivers/net/ethernet/3com/3c59x.c
946
release_region(edev->base_addr, VORTEX_TOTAL_SIZE);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
11508
if (BNXT_NEW_RM(bp) && !bnxt_ulp_registered(bp->edev)) {
drivers/net/ethernet/broadcom/bnxt/bnxt.c
14764
if (!bnxt_ulp_registered(bp->edev)) {
drivers/net/ethernet/broadcom/bnxt/bnxt.c
6899
if (vnic->vnic_id == BNXT_VNIC_DEFAULT && bnxt_ulp_registered(bp->edev))
drivers/net/ethernet/broadcom/bnxt/bnxt.c
8044
if (BNXT_NEW_RM(bp) && !bnxt_ulp_registered(bp->edev)) {
drivers/net/ethernet/broadcom/bnxt/bnxt.c
8097
if (bnxt_ulp_registered(bp->edev) &&
drivers/net/ethernet/broadcom/bnxt/bnxt.c
8142
if (!bnxt_ulp_registered(bp->edev) && BNXT_NEW_RM(bp)) {
drivers/net/ethernet/broadcom/bnxt/bnxt.h
2090
struct bnxt_en_dev *edev;
drivers/net/ethernet/broadcom/bnxt/bnxt.h
2354
struct bnxt_en_dev *edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
5212
bnxt_ulp_registered(bp->edev)) {
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
102
bp->edev->ulp_num_ctxs++;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
108
bp->edev->ulp_num_ctxs++;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
112
int bnxt_register_dev(struct bnxt_en_dev *edev,
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
116
struct net_device *dev = edev->net;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
123
mutex_lock(&edev->en_dev_lock);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
135
ulp = edev->ulp_tbl;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
142
edev->ulp_tbl->msix_requested = bnxt_get_ulp_msix_num(bp);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
144
bnxt_fill_msix_vecs(bp, bp->edev->msix_entries);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
146
mutex_unlock(&edev->en_dev_lock);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
152
void bnxt_unregister_dev(struct bnxt_en_dev *edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
154
struct net_device *dev = edev->net;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
158
ulp = edev->ulp_tbl;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
160
mutex_lock(&edev->en_dev_lock);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
161
edev->ulp_tbl->msix_requested = 0;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
170
mutex_unlock(&edev->en_dev_lock);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
191
int bnxt_send_msg(struct bnxt_en_dev *edev,
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
194
struct net_device *dev = edev->net;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
231
struct bnxt_en_dev *edev = bp->edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
233
if (!edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
236
mutex_lock(&edev->en_dev_lock);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
237
if (!bnxt_ulp_registered(edev) ||
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
238
(edev->flags & BNXT_EN_FLAG_ULP_STOPPED))
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
241
edev->flags |= BNXT_EN_FLAG_ULP_STOPPED;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
251
edev->en_state = bp->state;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
256
mutex_unlock(&edev->en_dev_lock);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
262
struct bnxt_en_dev *edev = bp->edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
264
if (!edev || err)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
267
mutex_lock(&edev->en_dev_lock);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
268
if (!bnxt_ulp_registered(edev) ||
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
269
!(edev->flags & BNXT_EN_FLAG_ULP_STOPPED))
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
272
if (edev->ulp_tbl->msix_requested)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
273
bnxt_fill_msix_vecs(bp, edev->msix_entries);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
283
edev->en_state = bp->state;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
288
edev->flags &= ~BNXT_EN_FLAG_ULP_STOPPED;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
289
mutex_unlock(&edev->en_dev_lock);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
294
struct bnxt_en_dev *edev = bp->edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
298
if (!edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
301
if (bnxt_ulp_registered(bp->edev)) {
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
302
struct bnxt_ulp *ulp = edev->ulp_tbl;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
318
struct bnxt_en_dev *edev = bp->edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
321
if (!edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
324
if (bnxt_ulp_registered(bp->edev)) {
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
325
struct bnxt_ulp *ulp = edev->ulp_tbl;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
34
struct bnxt_en_dev *edev = bp->edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
349
struct bnxt_en_dev *edev = bp->edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
353
if (!bnxt_ulp_registered(edev))
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
355
ulp = edev->ulp_tbl;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
37
if (!edev->ulp_tbl->msix_requested) {
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
374
void bnxt_register_async_events(struct bnxt_en_dev *edev,
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
377
struct net_device *dev = edev->net;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
381
ulp = edev->ulp_tbl;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
408
struct bnxt *bp = netdev_priv(aux_priv->edev->net);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
41
num_msix = edev->ulp_tbl->msix_requested;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
411
kfree(aux_priv->edev->ulp_tbl);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
412
bp->edev = NULL;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
413
kfree(aux_priv->edev);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
420
if (!bp->edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
426
static void bnxt_set_edev_info(struct bnxt_en_dev *edev, struct bnxt *bp)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
428
edev->net = bp->dev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
429
edev->pdev = bp->pdev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
430
edev->l2_db_size = bp->db_size;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
431
edev->l2_db_size_nc = bp->db_size;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
432
edev->l2_db_offset = bp->db_offset;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
433
mutex_init(&edev->en_dev_lock);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
436
edev->flags |= BNXT_EN_FLAG_ROCEV1_CAP;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
438
edev->flags |= BNXT_EN_FLAG_ROCEV2_CAP;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
440
edev->flags |= BNXT_EN_FLAG_VF;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
442
edev->flags |= BNXT_EN_FLAG_ROCE_VF_RES_MGMT;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
444
edev->flags |= BNXT_EN_FLAG_SW_RES_LMT;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
446
edev->chip_num = bp->chip_num;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
447
edev->hw_ring_stats_size = bp->hw_ring_stats_size;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
448
edev->pf_port_id = bp->pf.port_id;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
449
edev->en_state = bp->state;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
450
edev->bar0 = bp->bar0;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
458
if (!bp->edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
474
struct bnxt_en_dev *edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
511
edev = kzalloc_obj(*edev);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
512
if (!edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
515
aux_priv->edev = edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
521
edev->ulp_tbl = ulp;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
522
bp->edev = edev;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
523
bnxt_set_edev_info(edev, bp);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
54
if (bp->edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
55
return bp->edev->ulp_num_msix_vec;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
61
if (bp->edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
62
bp->edev->ulp_num_msix_vec = num;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
67
if (bnxt_ulp_registered(bp->edev))
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
68
return bp->edev->ulp_num_msix_vec;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
74
if (bp->edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
75
return bp->edev->ulp_num_ctxs;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
81
if (bp->edev)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
82
bp->edev->ulp_num_ctxs = num_ulp_ctx;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
87
if (bnxt_ulp_registered(bp->edev))
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
88
return bp->edev->ulp_num_ctxs;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
94
if (bp->edev) {
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
95
bp->edev->ulp_num_ctxs = BNXT_MIN_ROCE_STAT_CTXS;
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
100
if (edev && rcu_access_pointer(edev->ulp_tbl->ulp_ops))
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
122
int bnxt_register_dev(struct bnxt_en_dev *edev, struct bnxt_ulp_ops *ulp_ops,
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
124
void bnxt_unregister_dev(struct bnxt_en_dev *edev);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
125
int bnxt_send_msg(struct bnxt_en_dev *edev, struct bnxt_fw_msg *fw_msg);
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
126
void bnxt_register_async_events(struct bnxt_en_dev *edev,
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
63
#define BNXT_EN_VF(edev) ((edev)->flags & BNXT_EN_FLAG_VF)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
66
#define BNXT_EN_SW_RES_LMT(edev) ((edev)->flags & BNXT_EN_FLAG_SW_RES_LMT)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
98
static inline bool bnxt_ulp_registered(struct bnxt_en_dev *edev)
drivers/net/ethernet/mellanox/mlx5/core/dpll.c
421
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/dpll.c
422
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6618
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6622
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6650
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6651
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6659
actual_adev = mlx5_sd_get_adev(mdev, adev, edev->idx);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6667
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6671
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6691
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6692
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6696
actual_adev = mlx5_sd_get_adev(mdev, adev, edev->idx);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6706
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6708
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6780
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6781
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6789
actual_adev = mlx5_sd_get_adev(mdev, adev, edev->idx);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6797
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6801
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6835
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6836
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
6839
actual_adev = mlx5_sd_get_adev(mdev, adev, edev->idx);
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
1781
struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
1782
struct mlx5_core_dev *mdev = edev->mdev;
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
267
struct net_device *edev;
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
276
edev = br_fdb_find_port(br_dev, dmac, vid);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
277
if (!edev)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
280
if (br_vlan_get_info(edev, vid, &vinfo))
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
286
return edev;
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
354
mlxsw_sp_span_entry_tunnel_parms_common(struct net_device *edev,
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
368
if (!edev || mlxsw_sp_span_dmac(tbl, &gw, edev, dmac))
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
371
if (is_vlan_dev(edev))
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
372
edev = mlxsw_sp_span_entry_vlan(edev, &vid);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
374
if (netif_is_bridge_master(edev)) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
375
edev = mlxsw_sp_span_entry_bridge(edev, dmac, &vid);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
376
if (!edev)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
380
if (is_vlan_dev(edev)) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
381
if (vid || !(edev->flags & IFF_UP))
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
383
edev = mlxsw_sp_span_entry_vlan(edev, &vid);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
386
if (netif_is_lag_master(edev)) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
387
if (!(edev->flags & IFF_UP))
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
389
edev = mlxsw_sp_span_entry_lag(edev);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
390
if (!edev)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
394
if (!mlxsw_sp_port_dev_check(edev))
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
397
sparmsp->dest_port = netdev_priv(edev);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
400
memcpy(sparmsp->smac, edev->dev_addr, ETH_ALEN);
drivers/net/ethernet/qlogic/qed/qed.h
526
#define IS_LEAD_HWFN(edev) (!((edev)->my_id))
drivers/net/ethernet/qlogic/qed/qed.h
801
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede.h
176
#define IS_VF(edev) test_bit(QEDE_FLAGS_IS_VF, \
drivers/net/ethernet/qlogic/qede/qede.h
177
&(edev)->flags)
drivers/net/ethernet/qlogic/qede/qede.h
184
#define QEDE_MAX_RSS_CNT(edev) ((edev)->dev_info.num_queues)
drivers/net/ethernet/qlogic/qede/qede.h
185
#define QEDE_MAX_TSS_CNT(edev) ((edev)->dev_info.num_queues)
drivers/net/ethernet/qlogic/qede/qede.h
186
#define QEDE_IS_BB(edev) \
drivers/net/ethernet/qlogic/qede/qede.h
187
((edev)->dev_info.common.dev_type == QED_DEV_TYPE_BB)
drivers/net/ethernet/qlogic/qede/qede.h
188
#define QEDE_IS_AH(edev) \
drivers/net/ethernet/qlogic/qede/qede.h
189
((edev)->dev_info.common.dev_type == QED_DEV_TYPE_AH)
drivers/net/ethernet/qlogic/qede/qede.h
201
#define QEDE_QUEUE_CNT(edev) ((edev)->num_queues)
drivers/net/ethernet/qlogic/qede/qede.h
202
#define QEDE_RSS_COUNT(edev) ((edev)->num_queues - (edev)->fp_num_tx)
drivers/net/ethernet/qlogic/qede/qede.h
203
#define QEDE_RX_QUEUE_IDX(edev, i) (i)
drivers/net/ethernet/qlogic/qede/qede.h
204
#define QEDE_TSS_COUNT(edev) ((edev)->num_queues - (edev)->fp_num_rx)
drivers/net/ethernet/qlogic/qede/qede.h
414
#define QEDE_TXQ_XDP_TO_IDX(edev, txq) ((txq)->index - \
drivers/net/ethernet/qlogic/qede/qede.h
415
QEDE_MAX_TSS_CNT(edev))
drivers/net/ethernet/qlogic/qede/qede.h
416
#define QEDE_TXQ_IDX_TO_XDP(edev, idx) ((idx) + QEDE_MAX_TSS_CNT(edev))
drivers/net/ethernet/qlogic/qede/qede.h
417
#define QEDE_NDEV_TXQ_ID_TO_FP_ID(edev, idx) ((edev)->fp_num_rx + \
drivers/net/ethernet/qlogic/qede/qede.h
418
((idx) % QEDE_TSS_COUNT(edev)))
drivers/net/ethernet/qlogic/qede/qede.h
419
#define QEDE_NDEV_TXQ_ID_TO_TXQ_COS(edev, idx) ((idx) / QEDE_TSS_COUNT(edev))
drivers/net/ethernet/qlogic/qede/qede.h
420
#define QEDE_TXQ_TO_NDEV_TXQ_ID(edev, txq) ((QEDE_TSS_COUNT(edev) * \
drivers/net/ethernet/qlogic/qede/qede.h
422
#define QEDE_NDEV_TXQ_ID_TO_TXQ(edev, idx) \
drivers/net/ethernet/qlogic/qede/qede.h
423
(&((edev)->fp_array[QEDE_NDEV_TXQ_ID_TO_FP_ID(edev, idx)].txq \
drivers/net/ethernet/qlogic/qede/qede.h
424
[QEDE_NDEV_TXQ_ID_TO_TXQ_COS(edev, idx)]))
drivers/net/ethernet/qlogic/qede/qede.h
454
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede.h
478
#define DP_NAME(edev) netdev_name((edev)->ndev)
drivers/net/ethernet/qlogic/qede/qede.h
505
void qede_process_arfs_filters(struct qede_dev *edev, bool free_fltr);
drivers/net/ethernet/qlogic/qede/qede.h
506
void qede_poll_for_freeing_arfs_filters(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
508
void qede_free_arfs(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
509
int qede_alloc_arfs(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
510
int qede_add_cls_rule(struct qede_dev *edev, struct ethtool_rxnfc *info);
drivers/net/ethernet/qlogic/qede/qede.h
511
int qede_delete_flow_filter(struct qede_dev *edev, u64 cookie);
drivers/net/ethernet/qlogic/qede/qede.h
512
int qede_get_cls_rule_entry(struct qede_dev *edev, struct ethtool_rxnfc *cmd);
drivers/net/ethernet/qlogic/qede/qede.h
513
int qede_get_cls_rule_all(struct qede_dev *edev, struct ethtool_rxnfc *info,
drivers/net/ethernet/qlogic/qede/qede.h
515
int qede_get_arfs_filter_count(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
518
void (*func)(struct qede_dev *edev, struct qede_reload_args *args);
drivers/net/ethernet/qlogic/qede/qede.h
536
int qede_free_tx_pkt(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede.h
548
void qede_vlan_mark_nonconfigured(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
549
int qede_configure_vlan_filters(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
556
void qede_fill_rss_params(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede.h
567
void qede_set_udp_tunnels(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
568
void qede_reload(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede.h
571
void qede_fill_by_demand_stats(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
572
void __qede_lock(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
573
void __qede_unlock(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede.h
577
void qede_update_rx_prod(struct qede_dev *edev, struct qede_rx_queue *rxq);
drivers/net/ethernet/qlogic/qede/qede.h
578
int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
drivers/net/ethernet/qlogic/qede/qede.h
605
#define for_each_queue(i) for (i = 0; i < edev->num_queues; i++)
drivers/net/ethernet/qlogic/qede/qede.h
606
#define for_each_cos_in_txq(edev, var) \
drivers/net/ethernet/qlogic/qede/qede.h
607
for ((var) = 0; (var) < (edev)->dev_info.num_tc; (var)++)
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
101
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
103
return edev->ops->dcb->getpfcstate(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
108
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
110
return edev->ops->dcb->getapp(edev->cdev, idtype, id);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
115
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
117
return edev->ops->dcb->getdcbx(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
123
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
125
return edev->ops->dcb->setpgtccfgtx(edev->cdev, prio, pri_type, pgid,
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
132
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
134
return edev->ops->dcb->setpgtccfgrx(edev->cdev, prio, pri_type, pgid,
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
141
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
143
return edev->ops->dcb->setpgbwgcfgtx(edev->cdev, pgid, bw_pct);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
149
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
15
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
151
return edev->ops->dcb->setpgbwgcfgrx(edev->cdev, pgid, bw_pct);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
156
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
158
return edev->ops->dcb->setall(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
163
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
165
return edev->ops->dcb->setnumtcs(edev->cdev, tcid, num);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
17
return edev->ops->dcb->getstate(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
170
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
172
return edev->ops->dcb->setpfcstate(edev->cdev, state);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
178
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
180
return edev->ops->dcb->setapp(edev->cdev, idtype, idval, up);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
185
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
187
return edev->ops->dcb->setdcbx(edev->cdev, state);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
193
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
195
return edev->ops->dcb->getfeatcfg(edev->cdev, featid, flags);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
200
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
202
return edev->ops->dcb->setfeatcfg(edev->cdev, featid, flags);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
209
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
211
return edev->ops->dcb->peer_getappinfo(edev->cdev, info, count);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
217
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
219
return edev->ops->dcb->peer_getapptable(edev->cdev, app);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
22
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
225
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
227
return edev->ops->dcb->cee_peer_getpfc(edev->cdev, pfc);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
233
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
235
return edev->ops->dcb->cee_peer_getpg(edev->cdev, pg);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
24
return edev->ops->dcb->setstate(edev->cdev, state);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
241
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
243
return edev->ops->dcb->ieee_getpfc(edev->cdev, pfc);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
249
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
251
return edev->ops->dcb->ieee_setpfc(edev->cdev, pfc);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
257
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
259
return edev->ops->dcb->ieee_getets(edev->cdev, ets);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
265
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
267
return edev->ops->dcb->ieee_setets(edev->cdev, ets);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
273
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
275
return edev->ops->dcb->ieee_getapp(edev->cdev, app);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
281
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
288
return edev->ops->dcb->ieee_setapp(edev->cdev, app);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
294
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
296
return edev->ops->dcb->ieee_peer_getpfc(edev->cdev, pfc);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
302
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
304
return edev->ops->dcb->ieee_peer_getets(edev->cdev, ets);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
37
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
39
edev->ops->dcb->getpgtccfgtx(edev->cdev, prio, prio_type,
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
46
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
48
edev->ops->dcb->getpgbwgcfgtx(edev->cdev, pgid, bw_pct);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
55
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
57
edev->ops->dcb->getpgtccfgrx(edev->cdev, prio, prio_type, pgid, bw_pct,
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
64
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
66
edev->ops->dcb->getpgbwgcfgrx(edev->cdev, pgid, bw_pct);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
72
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
74
edev->ops->dcb->getpfccfg(edev->cdev, prio, setting);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
80
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
82
edev->ops->dcb->setpfccfg(edev->cdev, prio, setting);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
87
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
89
return edev->ops->dcb->getcap(edev->cdev, capid, cap);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
94
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
96
return edev->ops->dcb->getnumtcs(edev->cdev, tcid, num);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1003
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1008
if (edev->ops && edev->ops->common)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1009
edev->ops->common->dbg_all_data(edev->cdev, buffer);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1014
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1016
if (edev->ops && edev->ops->common)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1017
return edev->ops->common->dbg_all_data_size(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1022
static void qede_update_mtu(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1025
WRITE_ONCE(edev->ndev->mtu, args->u.mtu);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1031
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1034
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1043
qede_reload(edev, &args, false);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1045
qede_rdma_event_change_mtu(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1047
edev->ops->common->update_mtu(edev->cdev, new_mtu);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1055
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1057
channels->max_combined = QEDE_MAX_RSS_CNT(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1058
channels->max_rx = QEDE_MAX_RSS_CNT(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1059
channels->max_tx = QEDE_MAX_RSS_CNT(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1060
channels->combined_count = QEDE_QUEUE_CNT(edev) - edev->fp_num_tx -
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1061
edev->fp_num_rx;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1062
channels->tx_count = edev->fp_num_tx;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1063
channels->rx_count = edev->fp_num_rx;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1069
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1072
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1082
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1089
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1094
if (count > QEDE_MAX_RSS_CNT(edev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1095
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1097
count, QEDE_MAX_RSS_CNT(edev));
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1102
if ((count == QEDE_QUEUE_CNT(edev)) &&
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1103
(channels->tx_count == edev->fp_num_tx) &&
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1104
(channels->rx_count == edev->fp_num_rx)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1105
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1111
if ((count % edev->dev_info.common.num_hwfns) ||
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1112
(channels->tx_count % edev->dev_info.common.num_hwfns) ||
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1113
(channels->rx_count % edev->dev_info.common.num_hwfns)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1114
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1116
edev->dev_info.common.num_hwfns);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1121
edev->req_queues = count;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1122
edev->req_num_tx = channels->tx_count;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1123
edev->req_num_rx = channels->rx_count;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1125
if ((edev->req_queues - edev->req_num_tx) != QEDE_RSS_COUNT(edev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1126
edev->rss_params_inited &= ~QEDE_RSS_INDIR_INITED;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1127
memset(edev->rss_ind_table, 0, sizeof(edev->rss_ind_table));
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1130
qede_reload(edev, NULL, false);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1138
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1140
return qede_ptp_get_ts_info(edev, info);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1146
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1166
edev->ops->common->set_led(edev->cdev, led_state);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1174
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1184
if (edev->rss_caps & QED_RSS_IPV4_UDP)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1188
if (edev->rss_caps & QED_RSS_IPV6_UDP)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1204
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1206
return QEDE_RSS_COUNT(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1212
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1217
info->rule_cnt = qede_get_arfs_filter_count(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1221
rc = qede_get_cls_rule_entry(edev, info);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1224
rc = qede_get_cls_rule_all(edev, info, rule_locs);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1227
DP_ERR(edev, "Command parameters not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1239
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1243
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1253
DP_INFO(edev, "Command parameters not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1262
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1266
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1277
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1281
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1291
DP_INFO(edev, "Command parameters not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1307
DP_INFO(edev, "Command parameters not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1316
if (edev->rss_caps == ((edev->rss_caps & ~clr_caps) | set_caps))
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1320
edev->rss_caps = ((edev->rss_caps & ~clr_caps) | set_caps);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1321
edev->rss_params_inited |= QEDE_RSS_CAPS_INITED;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1324
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1325
if (edev->state == QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1328
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1331
qede_fill_rss_params(edev, &vport_update_params->rss_params,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1333
rc = edev->ops->vport_update(edev->cdev, vport_update_params);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1336
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1343
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1348
rc = qede_add_cls_rule(edev, info);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1351
rc = qede_delete_flow_filter(edev, info->fs.location);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1354
DP_INFO(edev, "Command parameters not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1368
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1370
return sizeof(edev->rss_key);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1376
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1385
rxfh->indir[i] = edev->rss_ind_table[i];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1388
memcpy(rxfh->key, edev->rss_key, qede_get_rxfh_key_size(dev));
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1398
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1401
if (edev->dev_info.common.num_hwfns > 1) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1402
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1416
edev->rss_ind_table[i] = rxfh->indir[i];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1417
edev->rss_params_inited |= QEDE_RSS_INDIR_INITED;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1421
memcpy(&edev->rss_key, rxfh->key, qede_get_rxfh_key_size(dev));
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1422
edev->rss_params_inited |= QEDE_RSS_KEY_INITED;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1425
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1426
if (edev->state == QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1429
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1432
qede_fill_rss_params(edev, &vport_update_params->rss_params,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1434
rc = edev->ops->vport_update(edev->cdev, vport_update_params);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1437
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1443
static void qede_netif_start(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1447
if (!netif_running(edev->ndev))
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1452
qed_sb_ack(edev->fp_array[i].sb_info, IGU_INT_ENABLE, 1);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1453
napi_enable(&edev->fp_array[i].napi);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1458
static void qede_netif_stop(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1463
napi_disable(&edev->fp_array[i].napi);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1465
qed_sb_ack(edev->fp_array[i].sb_info, IGU_INT_DISABLE, 0);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1469
static int qede_selftest_transmit_traffic(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1479
struct qede_fastpath *fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1488
DP_NOTICE(edev, "Tx path is not available\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1504
mapping = dma_map_single(&edev->pdev->dev, skb->data,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1506
if (unlikely(dma_mapping_error(&edev->pdev->dev, mapping))) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1507
DP_NOTICE(edev, "SKB mapping failed\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1533
DP_NOTICE(edev, "Tx completion didn't happen\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1538
dma_unmap_single(&edev->pdev->dev, BD_UNMAP_ADDR(first_bd),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1546
static int qede_selftest_receive_traffic(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1557
if (edev->fp_array[i].type & QEDE_FASTPATH_RX) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1558
rxq = edev->fp_array[i].rxq;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1564
DP_NOTICE(edev, "Rx path is not available\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1590
if (ether_addr_equal(data_ptr, edev->ndev->dev_addr) &&
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1592
edev->ndev->dev_addr)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1604
DP_INFO(edev, "Not the transmitted packet\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1610
DP_NOTICE(edev, "Failed to receive the traffic\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1614
qede_update_rx_prod(edev, rxq);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1619
static int qede_selftest_run_loopback(struct qede_dev *edev, u32 loopback_mode)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1627
if (!netif_running(edev->ndev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1628
DP_NOTICE(edev, "Interface is down\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1632
qede_netif_stop(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1639
edev->ops->common->set_link(edev->cdev, &link_params);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1647
pkt_size = (((edev->ndev->mtu < ETH_DATA_LEN) ?
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1648
edev->ndev->mtu : ETH_DATA_LEN) + ETH_HLEN);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1650
skb = netdev_alloc_skb(edev->ndev, pkt_size);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1652
DP_INFO(edev, "Can't allocate skb\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1657
ether_addr_copy(packet, edev->ndev->dev_addr);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1658
ether_addr_copy(packet + ETH_ALEN, edev->ndev->dev_addr);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1663
rc = qede_selftest_transmit_traffic(edev, skb);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1667
rc = qede_selftest_receive_traffic(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1671
DP_VERBOSE(edev, NETIF_MSG_RX_STATUS, "Loopback test successful\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1681
edev->ops->common->set_link(edev->cdev, &link_params);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1686
qede_netif_start(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1694
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1696
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1704
if (qede_selftest_run_loopback(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1711
if (edev->ops->common->selftest->selftest_interrupt(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1716
if (edev->ops->common->selftest->selftest_memory(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1721
if (edev->ops->common->selftest->selftest_register(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1726
if (edev->ops->common->selftest->selftest_clock(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1731
if (edev->ops->common->selftest->selftest_nvram(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1741
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1748
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1754
edev->rx_copybreak = *(u32 *)data;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1766
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1770
*(u32 *)data = edev->rx_copybreak;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1781
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1785
edev->ops->common->get_link(edev->cdev, ¤t_link);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1788
DP_INFO(edev, "EEE is not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1825
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1830
if (!edev->ops->common->can_link_change(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1831
DP_INFO(edev, "Link settings are not allowed to be changed\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1836
edev->ops->common->get_link(edev->cdev, ¤t_link);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1839
DP_INFO(edev, "EEE is not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1853
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1871
edev->ops->common->set_link(edev->cdev, ¶ms);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1915
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1919
edev->ops->common->get_link(edev->cdev, &curr_link);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1930
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1933
if (!edev->ops || !edev->ops->common->can_link_change(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1934
DP_INFO(edev, "Link settings are not allowed to be changed\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1943
edev->ops->common->set_link(edev->cdev, ¶ms);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1951
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1956
rc = edev->ops->common->read_module_eeprom(edev->cdev, buf,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1959
DP_ERR(edev, "Failed reading EEPROM data %d\n", rc);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1978
DP_ERR(edev, "Unknown transceiver type 0x%x\n", buf[0]);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
1988
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2001
rc = edev->ops->common->read_module_eeprom(edev->cdev, buf,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2005
DP_ERR(edev, "Failed reading A0 section %d\n", rc);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2021
rc = edev->ops->common->read_module_eeprom(edev->cdev, buf,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2025
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2036
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2039
if (edev->dump_info.cmd == QEDE_DUMP_CMD_NONE) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2041
DP_ERR(edev, "Invalid command %d\n", val->flag);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2044
edev->dump_info.cmd = val->flag;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2045
edev->dump_info.num_args = 0;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2049
if (edev->dump_info.num_args == QEDE_DUMP_MAX_ARGS) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2050
DP_ERR(edev, "Arg count = %d\n", edev->dump_info.num_args);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2054
switch (edev->dump_info.cmd) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2056
edev->dump_info.args[edev->dump_info.num_args] = val->flag;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2057
edev->dump_info.num_args++;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2060
rc = edev->ops->common->set_grc_config(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2073
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2075
if (!edev->ops || !edev->ops->common) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2076
DP_ERR(edev, "Edev ops not populated\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2081
switch (edev->dump_info.cmd) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2084
dump->len = edev->ops->common->read_nvm_cfg_len(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2085
edev->dump_info.args[0]);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2089
dump->len = edev->ops->common->dbg_all_data_size(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2092
DP_ERR(edev, "Invalid cmd = %d\n", edev->dump_info.cmd);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2096
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2105
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2108
if (!edev->ops || !edev->ops->common) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2109
DP_ERR(edev, "Edev ops not populated\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2114
switch (edev->dump_info.cmd) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2116
if (edev->dump_info.num_args != QEDE_DUMP_NVM_ARG_COUNT) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2117
DP_ERR(edev, "Arg count = %d required = %d\n",
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2118
edev->dump_info.num_args,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2123
rc = edev->ops->common->read_nvm_cfg(edev->cdev, (u8 **)&buf,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2124
edev->dump_info.args[0],
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2125
edev->dump_info.args[1]);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2129
rc = edev->ops->common->dbg_all_data(edev->cdev, buf);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2132
DP_ERR(edev, "Invalid cmd = %d\n", edev->dump_info.cmd);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2138
edev->dump_info.cmd = QEDE_DUMP_CMD_NONE;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2139
edev->dump_info.num_args = 0;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2140
memset(edev->dump_info.args, 0, sizeof(edev->dump_info.args));
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2148
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2155
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2166
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2167
if (queue >= edev->num_queues) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2168
DP_INFO(edev, "Invalid queue\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2173
if (edev->state != QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2178
fp = &edev->fp_array[queue];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2180
if (edev->fp_array[queue].type & QEDE_FASTPATH_RX) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2181
rc = edev->ops->common->set_coalesce(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2185
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2189
edev->coal_entry[queue].rxc = rxc;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2190
edev->coal_entry[queue].isvalid = true;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2193
if (edev->fp_array[queue].type & QEDE_FASTPATH_TX) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2194
rc = edev->ops->common->set_coalesce(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2198
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2202
edev->coal_entry[queue].txc = txc;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2203
edev->coal_entry[queue].isvalid = true;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2206
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2216
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2226
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2227
if (queue >= edev->num_queues) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2228
DP_INFO(edev, "Invalid queue\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2233
if (edev->state != QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2238
fp = &edev->fp_array[queue];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2243
rc = edev->ops->get_coalesce(edev->cdev, &rx_coal,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2246
DP_INFO(edev, "Read Rx coalesce error\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2250
fp = &edev->fp_array[queue];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2254
rc = edev->ops->get_coalesce(edev->cdev, &tx_coal,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2257
DP_INFO(edev, "Read Tx coalesce error\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2260
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2358
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
2360
if (IS_VF(edev))
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
270
static void qede_get_strings_stats_txq(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
278
QEDE_TXQ_XDP_TO_IDX(edev, txq),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
285
static void qede_get_strings_stats_rxq(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
295
static bool qede_is_irrelevant_stat(struct qede_dev *edev, int stat_index)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
297
return (IS_VF(edev) && QEDE_STAT_IS_PF_ONLY(stat_index)) ||
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
298
(QEDE_IS_BB(edev) && QEDE_STAT_IS_AH_ONLY(stat_index)) ||
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
299
(QEDE_IS_AH(edev) && QEDE_STAT_IS_BB_ONLY(stat_index));
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
302
static void qede_get_strings_stats(struct qede_dev *edev, u8 *buf)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
308
for (i = 0; i < QEDE_QUEUE_CNT(edev); i++) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
309
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
312
qede_get_strings_stats_rxq(edev, fp->rxq, &buf);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
315
qede_get_strings_stats_txq(edev, fp->xdp_tx, &buf);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
320
for_each_cos_in_txq(edev, cos)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
321
qede_get_strings_stats_txq(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
328
if (qede_is_irrelevant_stat(edev, i))
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
336
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
341
qede_get_strings_stats(edev, buf);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
352
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
380
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
384
qede_fill_by_demand_stats(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
387
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
389
for (i = 0; i < QEDE_QUEUE_CNT(edev); i++) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
390
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
401
for_each_cos_in_txq(edev, cos)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
406
spin_lock(&edev->stats_lock);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
409
if (qede_is_irrelevant_stat(edev, i))
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
411
*buf = *((u64 *)(((void *)&edev->stats) +
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
417
spin_unlock(&edev->stats_lock);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
419
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
424
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
430
if (qede_is_irrelevant_stat(edev, i))
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
434
num_stats += QEDE_TSS_COUNT(edev) * QEDE_NUM_TQSTATS *
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
435
edev->dev_info.num_tc;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
438
num_stats += QEDE_RSS_COUNT(edev) * QEDE_NUM_RQSTATS;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
441
if (edev->xdp_prog)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
442
num_stats += QEDE_RSS_COUNT(edev) * QEDE_NUM_TQSTATS;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
448
if (!IS_VF(edev))
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
453
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
461
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
465
if (edev->dev_info.common.num_hwfns > 1)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
468
if (edev->dev_info.common.smart_an)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
471
if (edev->err_flags & BIT(QEDE_ERR_IS_RECOVERABLE))
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
474
if (edev->dev_info.common.esl)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
477
edev->ops->common->get_esl_status(edev->cdev, &esl_active);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
487
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
496
set_bit(QEDE_ERR_IS_RECOVERABLE, &edev->err_flags);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
498
clear_bit(QEDE_ERR_IS_RECOVERABLE, &edev->err_flags);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
508
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
511
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
514
edev->ops->common->get_link(edev->cdev, ¤t_link);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
520
if ((edev->state == QEDE_STATE_OPEN) && (current_link.link_up)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
528
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
542
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
547
if (!edev->ops || !edev->ops->common->can_link_change(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
548
DP_INFO(edev, "Link settings are not allowed to be changed\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
553
edev->ops->common->get_link(edev->cdev, ¤t_link);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
560
DP_INFO(edev, "Auto negotiation is not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
586
DP_INFO(edev, "Unsupported speed %u\n", base->speed);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
592
edev->ops->common->set_link(edev->cdev, ¶ms);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
601
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
607
edev->dev_info.common.fw_major,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
608
edev->dev_info.common.fw_minor,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
609
edev->dev_info.common.fw_rev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
610
edev->dev_info.common.fw_eng);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
613
(edev->dev_info.common.mfw_rev >> 24) & 0xFF,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
614
(edev->dev_info.common.mfw_rev >> 16) & 0xFF,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
615
(edev->dev_info.common.mfw_rev >> 8) & 0xFF,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
616
edev->dev_info.common.mfw_rev & 0xFF);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
626
if (edev->dev_info.common.mbi_version) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
628
(edev->dev_info.common.mbi_version &
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
630
(edev->dev_info.common.mbi_version &
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
632
(edev->dev_info.common.mbi_version &
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
641
strscpy(info->bus_info, pci_name(edev->pdev), sizeof(info->bus_info));
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
646
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
648
if (edev->dev_info.common.wol_support) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
650
wol->wolopts = edev->wol_enabled ? WAKE_MAGIC : 0;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
656
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
661
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
667
if (wol_requested == edev->wol_enabled)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
671
if (!edev->dev_info.common.wol_support) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
672
DP_INFO(edev, "Device doesn't support WoL\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
676
rc = edev->ops->common->update_wol(edev->cdev, wol_requested);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
678
edev->wol_enabled = wol_requested;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
685
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
687
return ((u32)edev->dp_level << QED_LOG_LEVEL_SHIFT) | edev->dp_module;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
692
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
698
edev->dp_level = dp_level;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
699
edev->dp_module = dp_module;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
700
edev->ops->common->update_msglvl(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
706
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
710
if (!edev->ops || !edev->ops->common->can_link_change(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
711
DP_INFO(edev, "Link settings are not allowed to be changed\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
719
edev->ops->common->get_link(edev->cdev, ¤t_link);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
726
edev->ops->common->set_link(edev->cdev, &link_params);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
728
edev->ops->common->set_link(edev->cdev, &link_params);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
735
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
739
edev->ops->common->get_link(edev->cdev, ¤t_link);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
747
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
749
return edev->ops->common->nvm_flash(edev->cdev, flash->data);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
758
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
767
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
768
if (edev->state == QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
770
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
778
rc = edev->ops->get_coalesce(edev->cdev, &rx_coal, rx_handle);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
780
DP_INFO(edev, "Read Rx coalesce error\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
787
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
800
rc = edev->ops->get_coalesce(edev->cdev, &tx_coal, tx_handle);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
802
DP_INFO(edev, "Read Tx coalesce error\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
806
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
810
coal->stats_block_coalesce_usecs = edev->stats_coal_usecs;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
819
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
824
if (edev->stats_coal_usecs != coal->stats_block_coalesce_usecs) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
825
edev->stats_coal_usecs = coal->stats_block_coalesce_usecs;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
826
if (edev->stats_coal_usecs) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
827
edev->stats_coal_ticks = usecs_to_jiffies(edev->stats_coal_usecs);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
828
schedule_delayed_work(&edev->periodic_task, 0);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
830
DP_INFO(edev, "Configured stats coal ticks=%lu jiffies\n",
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
831
edev->stats_coal_ticks);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
833
cancel_delayed_work_sync(&edev->periodic_task);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
838
DP_INFO(edev, "Interface is down\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
844
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
854
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
856
if (edev->fp_array[i].type & QEDE_FASTPATH_RX) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
857
rc = edev->ops->common->set_coalesce(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
861
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
865
edev->coal_entry[i].rxc = rxc;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
866
edev->coal_entry[i].isvalid = true;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
869
if (edev->fp_array[i].type & QEDE_FASTPATH_TX) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
878
rc = edev->ops->common->set_coalesce(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
882
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
886
edev->coal_entry[i].txc = txc;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
887
edev->coal_entry[i].isvalid = true;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
899
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
902
ering->rx_pending = edev->q_num_rx_buffers;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
904
ering->tx_pending = edev->q_num_tx_buffers;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
912
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
914
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
923
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
931
edev->q_num_rx_buffers = ering->rx_pending;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
932
edev->q_num_tx_buffers = ering->tx_pending;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
934
qede_reload(edev, NULL, false);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
942
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
946
edev->ops->common->get_link(edev->cdev, ¤t_link);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
955
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
964
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
968
if (!edev->ops || !edev->ops->common->can_link_change(edev->cdev)) {
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
969
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
975
edev->ops->common->get_link(edev->cdev, ¤t_link);
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
982
DP_INFO(edev, "autoneg not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
995
edev->ops->common->set_link(edev->cdev, ¶ms);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1006
void qede_set_udp_tunnels(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1008
if (edev->dev_info.common.vxlan_enable &&
drivers/net/ethernet/qlogic/qede/qede_filter.c
1009
edev->dev_info.common.geneve_enable)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1010
edev->ndev->udp_tunnel_nic_info = &qede_udp_tunnels_both;
drivers/net/ethernet/qlogic/qede/qede_filter.c
1011
else if (edev->dev_info.common.vxlan_enable)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1012
edev->ndev->udp_tunnel_nic_info = &qede_udp_tunnels_vxlan;
drivers/net/ethernet/qlogic/qede/qede_filter.c
1013
else if (edev->dev_info.common.geneve_enable)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1014
edev->ndev->udp_tunnel_nic_info = &qede_udp_tunnels_geneve;
drivers/net/ethernet/qlogic/qede/qede_filter.c
1017
static void qede_xdp_reload_func(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1022
old = xchg(&edev->xdp_prog, args->u.new_prog);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1027
static int qede_xdp_set(struct qede_dev *edev, struct bpf_prog *prog)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1034
qede_reload(edev, &args, false);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1041
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1045
return qede_xdp_set(edev, xdp->prog);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1051
static int qede_set_mcast_rx_mac(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1065
return edev->ops->filter_config_mcast(edev->cdev, &mcast);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1070
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1078
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1081
DP_NOTICE(edev, "The MAC address is not valid\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
1086
if (!edev->ops->check_mac(edev->cdev, addr->sa_data)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1087
DP_NOTICE(edev, "qed prevents setting MAC %pM\n",
drivers/net/ethernet/qlogic/qede/qede_filter.c
1093
if (edev->state == QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1095
rc = qede_set_ucast_rx_mac(edev, QED_FILTER_XCAST_TYPE_DEL,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1102
DP_INFO(edev, "Setting device MAC to %pM\n", addr->sa_data);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1104
if (edev->state != QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1105
DP_VERBOSE(edev, NETIF_MSG_IFDOWN,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1108
if (IS_VF(edev) && edev->ops->req_bulletin_update_mac)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1109
edev->ops->req_bulletin_update_mac(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1114
edev->ops->common->update_mac(edev->cdev, ndev->dev_addr);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1116
rc = qede_set_ucast_rx_mac(edev, QED_FILTER_XCAST_TYPE_ADD,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1119
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1127
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1137
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1146
rc = qede_set_mcast_rx_mac(edev, QED_FILTER_XCAST_TYPE_DEL,
drivers/net/ethernet/qlogic/qede/qede_filter.c
115
DP_VERBOSE(edev, NETIF_MSG_RX_STATUS,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1169
rc = qede_set_mcast_rx_mac(edev, QED_FILTER_XCAST_TYPE_ADD,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1180
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1182
set_bit(QEDE_SP_RX_MODE, &edev->sp_flags);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1183
schedule_delayed_work(&edev->sp_task, 0);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1190
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1203
DP_NOTICE(edev, "Failed to allocate memory for unicast MACs\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
1219
rc = qede_set_ucast_rx_mac(edev, QED_FILTER_XCAST_TYPE_REPLACE,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1220
edev->ndev->dev_addr);
drivers/net/ethernet/qlogic/qede/qede_filter.c
123
op->ntuple_filter_config(edev->cdev, n, ¶ms);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1231
if (uc_count < edev->dev_info.num_mac_filters) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1236
rc = qede_set_ucast_rx_mac(edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1254
qede_config_accept_any_vlan(edev, true);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1255
} else if (!edev->non_configured_vlans) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1260
qede_config_accept_any_vlan(edev, false);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1263
edev->ops->filter_config_rx_mode(edev->cdev, accept_flags);
drivers/net/ethernet/qlogic/qede/qede_filter.c
127
qede_free_arfs_filter(struct qede_dev *edev, struct qede_arfs_fltr_node *fltr)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1280
int qede_get_cls_rule_all(struct qede_dev *edev, struct ethtool_rxnfc *info,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1289
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1291
if (!edev->arfs) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1296
head = QEDE_ARFS_BUCKET_HEAD(edev, 0);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1311
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1315
int qede_get_cls_rule_entry(struct qede_dev *edev, struct ethtool_rxnfc *cmd)
drivers/net/ethernet/qlogic/qede/qede_filter.c
132
clear_bit(fltr->sw_id, edev->arfs->arfs_fltr_bmap);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1323
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1325
if (!edev->arfs) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1330
fltr = qede_get_arfs_fltr_by_loc(QEDE_ARFS_BUCKET_HEAD(edev, 0),
drivers/net/ethernet/qlogic/qede/qede_filter.c
1333
DP_NOTICE(edev, "Rule not found - location=0x%x\n",
drivers/net/ethernet/qlogic/qede/qede_filter.c
1372
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1377
qede_poll_arfs_filter_config(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
138
qede_enqueue_fltr_and_config_searcher(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1388
DP_NOTICE(edev, "Timeout in polling filter config\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
1389
qede_dequeue_fltr_and_config_searcher(edev, fltr);
drivers/net/ethernet/qlogic/qede/qede_filter.c
142
fltr->mapping = dma_map_single(&edev->pdev->dev, fltr->data,
drivers/net/ethernet/qlogic/qede/qede_filter.c
144
if (dma_mapping_error(&edev->pdev->dev, fltr->mapping)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
145
DP_NOTICE(edev, "Failed to map DMA memory for rule\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
146
qede_free_arfs_filter(edev, fltr);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1497
static int qede_flow_spec_validate_unused(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1501
DP_INFO(edev, "Don't support MAC extensions\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
1507
DP_INFO(edev, "Don't support vlan-based classification\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
1513
DP_INFO(edev, "Don't support user defined data\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
152
QEDE_ARFS_BUCKET_HEAD(edev, bucket_idx));
drivers/net/ethernet/qlogic/qede/qede_filter.c
154
edev->arfs->filter_count++;
drivers/net/ethernet/qlogic/qede/qede_filter.c
155
if (edev->arfs->filter_count == 1 &&
drivers/net/ethernet/qlogic/qede/qede_filter.c
156
edev->arfs->mode == QED_FILTER_CONFIG_MODE_DISABLE) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
157
edev->ops->configure_arfs_searcher(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1585
qede_flow_find_fltr(struct qede_dev *edev, struct qede_arfs_tuple *t)
drivers/net/ethernet/qlogic/qede/qede_filter.c
159
edev->arfs->mode = fltr->tuple.mode;
drivers/net/ethernet/qlogic/qede/qede_filter.c
1591
head = QEDE_ARFS_BUCKET_HEAD(edev, 0);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1604
static void qede_flow_set_destination(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1618
DP_VERBOSE(edev, QED_MSG_SP,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1622
int qede_delete_flow_filter(struct qede_dev *edev, u64 cookie)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1627
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1628
if (!edev->arfs)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1631
fltr = qede_get_arfs_fltr_by_loc(QEDE_ARFS_BUCKET_HEAD(edev, 0),
drivers/net/ethernet/qlogic/qede/qede_filter.c
1636
qede_configure_arfs_fltr(edev, fltr, fltr->rxq_id, false);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1638
rc = qede_poll_arfs_filter_config(edev, fltr);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1640
qede_dequeue_fltr_and_config_searcher(edev, fltr);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1643
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1647
int qede_get_arfs_filter_count(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1651
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1653
if (!edev->arfs)
drivers/net/ethernet/qlogic/qede/qede_filter.c
1656
count = edev->arfs->filter_count;
drivers/net/ethernet/qlogic/qede/qede_filter.c
1659
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
166
qede_dequeue_fltr_and_config_searcher(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1663
static int qede_parse_actions(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1686
if (act->queue.index >= QEDE_RSS_COUNT(edev)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
170
dma_unmap_single(&edev->pdev->dev, fltr->mapping,
drivers/net/ethernet/qlogic/qede/qede_filter.c
173
qede_free_arfs_filter(edev, fltr);
drivers/net/ethernet/qlogic/qede/qede_filter.c
175
edev->arfs->filter_count--;
drivers/net/ethernet/qlogic/qede/qede_filter.c
176
if (!edev->arfs->filter_count &&
drivers/net/ethernet/qlogic/qede/qede_filter.c
177
edev->arfs->mode != QED_FILTER_CONFIG_MODE_DISABLE) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
181
edev->ops->configure_arfs_searcher(edev->cdev, mode);
drivers/net/ethernet/qlogic/qede/qede_filter.c
182
edev->arfs->mode = QED_FILTER_CONFIG_MODE_DISABLE;
drivers/net/ethernet/qlogic/qede/qede_filter.c
1879
int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1887
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1889
if (!edev->arfs) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
189
struct qede_dev *edev = dev;
drivers/net/ethernet/qlogic/qede/qede_filter.c
1900
if ((edev->arfs->filter_count && edev->arfs->mode != t.mode) ||
drivers/net/ethernet/qlogic/qede/qede_filter.c
1901
edev->arfs->filter_count == QEDE_RFS_MAX_FLTR) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1902
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1904
t.mode, edev->arfs->mode, edev->arfs->filter_count);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1910
rc = qede_parse_actions(edev, &f->rule->action, extack);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1914
if (qede_flow_find_fltr(edev, &t)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
194
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1942
rc = qede_enqueue_fltr_and_config_searcher(edev, n, 0);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1946
qede_configure_arfs_fltr(edev, n, n->rxq_id, true);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1947
rc = qede_poll_arfs_filter_config(edev, n);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1950
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1954
static int qede_flow_spec_validate(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1963
DP_INFO(edev, "Location out-of-bounds\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
1968
if (test_bit(location, edev->arfs->arfs_fltr_bmap)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1969
DP_INFO(edev, "Location already in use\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
1974
if (edev->arfs->filter_count &&
drivers/net/ethernet/qlogic/qede/qede_filter.c
1975
edev->arfs->mode != t->mode) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
1976
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1978
t->mode, edev->arfs->filter_count);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1982
err = qede_parse_actions(edev, flow_action, extack);
drivers/net/ethernet/qlogic/qede/qede_filter.c
1989
static int qede_flow_spec_to_rule(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
1999
err = qede_flow_spec_validate_unused(edev, fs);
drivers/net/ethernet/qlogic/qede/qede_filter.c
200
spin_lock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2013
DP_VERBOSE(edev, NETIF_MSG_IFUP,
drivers/net/ethernet/qlogic/qede/qede_filter.c
2028
err = qede_flow_spec_validate(edev, &flow->rule->action, t,
drivers/net/ethernet/qlogic/qede/qede_filter.c
2032
DP_NOTICE(edev, "%s\n", extack._msg);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2038
int qede_add_cls_rule(struct qede_dev *edev, struct ethtool_rxnfc *info)
drivers/net/ethernet/qlogic/qede/qede_filter.c
2045
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2047
if (!edev->arfs) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
205
spin_unlock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2053
rc = qede_flow_spec_to_rule(edev, &t, fsp);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2057
if (qede_flow_find_fltr(edev, &t)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
2077
set_bit(n->sw_id, edev->arfs->arfs_fltr_bmap);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2082
qede_flow_set_destination(edev, n, fsp);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2087
rc = qede_enqueue_fltr_and_config_searcher(edev, n, 0);
drivers/net/ethernet/qlogic/qede/qede_filter.c
209
spin_lock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2091
qede_configure_arfs_fltr(edev, n, n->rxq_id, true);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2092
rc = qede_poll_arfs_filter_config(edev, n);
drivers/net/ethernet/qlogic/qede/qede_filter.c
2094
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
216
qede_configure_arfs_fltr(edev, fltr, fltr->rxq_id,
drivers/net/ethernet/qlogic/qede/qede_filter.c
222
qede_configure_arfs_fltr(edev, fltr,
drivers/net/ethernet/qlogic/qede/qede_filter.c
227
spin_unlock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
231
void qede_process_arfs_filters(struct qede_dev *edev, bool free_fltr)
drivers/net/ethernet/qlogic/qede/qede_filter.c
240
head = &edev->arfs->arfs_hl_head[i];
drivers/net/ethernet/qlogic/qede/qede_filter.c
245
if (edev->state != QEDE_STATE_OPEN)
drivers/net/ethernet/qlogic/qede/qede_filter.c
248
spin_lock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
252
qede_dequeue_fltr_and_config_searcher(edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
257
flow_exp = rps_may_expire_flow(edev->ndev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
263
qede_configure_arfs_fltr(edev, fltr,
drivers/net/ethernet/qlogic/qede/qede_filter.c
268
spin_unlock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
273
spin_lock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
275
if (edev->arfs->filter_count) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
276
set_bit(QEDE_SP_ARFS_CONFIG, &edev->sp_flags);
drivers/net/ethernet/qlogic/qede/qede_filter.c
277
schedule_delayed_work(&edev->sp_task,
drivers/net/ethernet/qlogic/qede/qede_filter.c
281
spin_unlock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
288
void qede_poll_for_freeing_arfs_filters(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_filter.c
293
qede_process_arfs_filters(edev, false);
drivers/net/ethernet/qlogic/qede/qede_filter.c
295
if (!edev->arfs->filter_count)
drivers/net/ethernet/qlogic/qede/qede_filter.c
303
DP_NOTICE(edev, "Timeout in polling for arfs filter free\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
306
qede_process_arfs_filters(edev, true);
drivers/net/ethernet/qlogic/qede/qede_filter.c
310
int qede_alloc_arfs(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_filter.c
314
if (!edev->dev_info.common.b_arfs_capable)
drivers/net/ethernet/qlogic/qede/qede_filter.c
317
edev->arfs = vzalloc(sizeof(*edev->arfs));
drivers/net/ethernet/qlogic/qede/qede_filter.c
318
if (!edev->arfs)
drivers/net/ethernet/qlogic/qede/qede_filter.c
321
spin_lock_init(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
324
INIT_HLIST_HEAD(QEDE_ARFS_BUCKET_HEAD(edev, i));
drivers/net/ethernet/qlogic/qede/qede_filter.c
326
edev->arfs->arfs_fltr_bmap =
drivers/net/ethernet/qlogic/qede/qede_filter.c
329
if (!edev->arfs->arfs_fltr_bmap) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
330
vfree(edev->arfs);
drivers/net/ethernet/qlogic/qede/qede_filter.c
331
edev->arfs = NULL;
drivers/net/ethernet/qlogic/qede/qede_filter.c
336
edev->ndev->rx_cpu_rmap = alloc_irq_cpu_rmap(QEDE_RSS_COUNT(edev));
drivers/net/ethernet/qlogic/qede/qede_filter.c
337
if (!edev->ndev->rx_cpu_rmap) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
338
vfree(edev->arfs->arfs_fltr_bmap);
drivers/net/ethernet/qlogic/qede/qede_filter.c
339
edev->arfs->arfs_fltr_bmap = NULL;
drivers/net/ethernet/qlogic/qede/qede_filter.c
340
vfree(edev->arfs);
drivers/net/ethernet/qlogic/qede/qede_filter.c
341
edev->arfs = NULL;
drivers/net/ethernet/qlogic/qede/qede_filter.c
348
void qede_free_arfs(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_filter.c
350
if (!edev->arfs)
drivers/net/ethernet/qlogic/qede/qede_filter.c
354
if (edev->ndev->rx_cpu_rmap)
drivers/net/ethernet/qlogic/qede/qede_filter.c
355
free_irq_cpu_rmap(edev->ndev->rx_cpu_rmap);
drivers/net/ethernet/qlogic/qede/qede_filter.c
357
edev->ndev->rx_cpu_rmap = NULL;
drivers/net/ethernet/qlogic/qede/qede_filter.c
359
vfree(edev->arfs->arfs_fltr_bmap);
drivers/net/ethernet/qlogic/qede/qede_filter.c
360
edev->arfs->arfs_fltr_bmap = NULL;
drivers/net/ethernet/qlogic/qede/qede_filter.c
361
vfree(edev->arfs);
drivers/net/ethernet/qlogic/qede/qede_filter.c
362
edev->arfs = NULL;
drivers/net/ethernet/qlogic/qede/qede_filter.c
405
qede_alloc_filter(struct qede_dev *edev, int min_hlen)
drivers/net/ethernet/qlogic/qede/qede_filter.c
410
bit_id = find_first_zero_bit(edev->arfs->arfs_fltr_bmap,
drivers/net/ethernet/qlogic/qede/qede_filter.c
427
set_bit(bit_id, edev->arfs->arfs_fltr_bmap);
drivers/net/ethernet/qlogic/qede/qede_filter.c
434
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
463
spin_lock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
465
n = qede_arfs_htbl_key_search(QEDE_ARFS_BUCKET_HEAD(edev, tbl_idx),
drivers/net/ethernet/qlogic/qede/qede_filter.c
473
qede_configure_arfs_fltr(edev, n, n->rxq_id,
drivers/net/ethernet/qlogic/qede/qede_filter.c
478
qede_configure_arfs_fltr(edev, n, n->rxq_id,
drivers/net/ethernet/qlogic/qede/qede_filter.c
489
n = qede_alloc_filter(edev, min_hlen);
drivers/net/ethernet/qlogic/qede/qede_filter.c
519
rc = qede_enqueue_fltr_and_config_searcher(edev, n, tbl_idx);
drivers/net/ethernet/qlogic/qede/qede_filter.c
523
qede_configure_arfs_fltr(edev, n, n->rxq_id, true);
drivers/net/ethernet/qlogic/qede/qede_filter.c
525
spin_unlock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
527
set_bit(QEDE_SP_ARFS_CONFIG, &edev->sp_flags);
drivers/net/ethernet/qlogic/qede/qede_filter.c
528
schedule_delayed_work(&edev->sp_task, 0);
drivers/net/ethernet/qlogic/qede/qede_filter.c
533
spin_unlock_bh(&edev->arfs->arfs_list_lock);
drivers/net/ethernet/qlogic/qede/qede_filter.c
540
struct qede_dev *edev = dev;
drivers/net/ethernet/qlogic/qede/qede_filter.c
542
if (edev->vxlan_dst_port != vxlan_port)
drivers/net/ethernet/qlogic/qede/qede_filter.c
543
edev->vxlan_dst_port = 0;
drivers/net/ethernet/qlogic/qede/qede_filter.c
545
if (edev->geneve_dst_port != geneve_port)
drivers/net/ethernet/qlogic/qede/qede_filter.c
546
edev->geneve_dst_port = 0;
drivers/net/ethernet/qlogic/qede/qede_filter.c
551
struct qede_dev *edev = dev;
drivers/net/ethernet/qlogic/qede/qede_filter.c
553
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
556
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
560
eth_hw_addr_set(edev->ndev, mac);
drivers/net/ethernet/qlogic/qede/qede_filter.c
561
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
564
void qede_fill_rss_params(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
570
if (QEDE_RSS_COUNT(edev) <= 1) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
578
if (edev->rss_ind_table[i] >= QEDE_RSS_COUNT(edev)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
584
if (!(edev->rss_params_inited & QEDE_RSS_INDIR_INITED) || need_reset) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
588
val = QEDE_RSS_COUNT(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
590
edev->rss_ind_table[i] = indir_val;
drivers/net/ethernet/qlogic/qede/qede_filter.c
592
edev->rss_params_inited |= QEDE_RSS_INDIR_INITED;
drivers/net/ethernet/qlogic/qede/qede_filter.c
597
u16 idx = QEDE_RX_QUEUE_IDX(edev, edev->rss_ind_table[i]);
drivers/net/ethernet/qlogic/qede/qede_filter.c
599
rss->rss_ind_table[i] = edev->fp_array[idx].rxq->handle;
drivers/net/ethernet/qlogic/qede/qede_filter.c
602
if (!(edev->rss_params_inited & QEDE_RSS_KEY_INITED)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
603
netdev_rss_key_fill(edev->rss_key, sizeof(edev->rss_key));
drivers/net/ethernet/qlogic/qede/qede_filter.c
604
edev->rss_params_inited |= QEDE_RSS_KEY_INITED;
drivers/net/ethernet/qlogic/qede/qede_filter.c
606
memcpy(rss->rss_key, edev->rss_key, sizeof(rss->rss_key));
drivers/net/ethernet/qlogic/qede/qede_filter.c
608
if (!(edev->rss_params_inited & QEDE_RSS_CAPS_INITED)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
609
edev->rss_caps = QED_RSS_IPV4 | QED_RSS_IPV6 |
drivers/net/ethernet/qlogic/qede/qede_filter.c
611
edev->rss_params_inited |= QEDE_RSS_CAPS_INITED;
drivers/net/ethernet/qlogic/qede/qede_filter.c
613
rss->rss_caps = edev->rss_caps;
drivers/net/ethernet/qlogic/qede/qede_filter.c
618
static int qede_set_ucast_rx_mac(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
629
return edev->ops->filter_config_ucast(edev->cdev, &ucast);
drivers/net/ethernet/qlogic/qede/qede_filter.c
632
static int qede_set_ucast_rx_vlan(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
643
return edev->ops->filter_config_ucast(edev->cdev, &ucast);
drivers/net/ethernet/qlogic/qede/qede_filter.c
646
static int qede_config_accept_any_vlan(struct qede_dev *edev, bool action)
drivers/net/ethernet/qlogic/qede/qede_filter.c
652
if (edev->accept_any_vlan == action)
drivers/net/ethernet/qlogic/qede/qede_filter.c
663
rc = edev->ops->vport_update(edev->cdev, params);
drivers/net/ethernet/qlogic/qede/qede_filter.c
665
DP_ERR(edev, "Failed to %s accept-any-vlan\n",
drivers/net/ethernet/qlogic/qede/qede_filter.c
668
DP_INFO(edev, "%s accept-any-vlan\n",
drivers/net/ethernet/qlogic/qede/qede_filter.c
670
edev->accept_any_vlan = action;
drivers/net/ethernet/qlogic/qede/qede_filter.c
679
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
683
DP_VERBOSE(edev, NETIF_MSG_IFUP, "Adding vlan 0x%04x\n", vid);
drivers/net/ethernet/qlogic/qede/qede_filter.c
687
DP_INFO(edev, "Failed to allocate struct for vlan\n");
drivers/net/ethernet/qlogic/qede/qede_filter.c
695
list_for_each_entry(tmp, &edev->vlan_list, list) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
697
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_filter.c
705
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
706
if (edev->state != QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
707
DP_VERBOSE(edev, NETIF_MSG_IFDOWN,
drivers/net/ethernet/qlogic/qede/qede_filter.c
711
edev->non_configured_vlans++;
drivers/net/ethernet/qlogic/qede/qede_filter.c
712
list_add(&vlan->list, &edev->vlan_list);
drivers/net/ethernet/qlogic/qede/qede_filter.c
720
if ((edev->configured_vlans < edev->dev_info.num_vlan_filters) ||
drivers/net/ethernet/qlogic/qede/qede_filter.c
722
rc = qede_set_ucast_rx_vlan(edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
726
DP_ERR(edev, "Failed to configure VLAN %d\n",
drivers/net/ethernet/qlogic/qede/qede_filter.c
73
#define QEDE_ARFS_BUCKET_HEAD(edev, idx) (&(edev)->arfs->arfs_hl_head[idx])
drivers/net/ethernet/qlogic/qede/qede_filter.c
735
edev->configured_vlans++;
drivers/net/ethernet/qlogic/qede/qede_filter.c
738
if (!edev->non_configured_vlans) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
739
rc = qede_config_accept_any_vlan(edev, true);
drivers/net/ethernet/qlogic/qede/qede_filter.c
746
edev->non_configured_vlans++;
drivers/net/ethernet/qlogic/qede/qede_filter.c
749
list_add(&vlan->list, &edev->vlan_list);
drivers/net/ethernet/qlogic/qede/qede_filter.c
752
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
756
static void qede_del_vlan_from_list(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
762
edev->configured_vlans--;
drivers/net/ethernet/qlogic/qede/qede_filter.c
764
edev->non_configured_vlans--;
drivers/net/ethernet/qlogic/qede/qede_filter.c
771
int qede_configure_vlan_filters(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_filter.c
777
if (list_empty(&edev->vlan_list))
drivers/net/ethernet/qlogic/qede/qede_filter.c
780
dev_info = &edev->dev_info;
drivers/net/ethernet/qlogic/qede/qede_filter.c
783
list_for_each_entry(vlan, &edev->vlan_list, list) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
789
(edev->configured_vlans == dev_info->num_vlan_filters)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
794
DP_VERBOSE(edev, NETIF_MSG_IFUP, "Adding vlan %d\n", vlan->vid);
drivers/net/ethernet/qlogic/qede/qede_filter.c
796
rc = qede_set_ucast_rx_vlan(edev, QED_FILTER_XCAST_TYPE_ADD,
drivers/net/ethernet/qlogic/qede/qede_filter.c
799
DP_ERR(edev, "Failed to configure VLAN %u\n",
drivers/net/ethernet/qlogic/qede/qede_filter.c
808
edev->non_configured_vlans--;
drivers/net/ethernet/qlogic/qede/qede_filter.c
809
edev->configured_vlans++;
drivers/net/ethernet/qlogic/qede/qede_filter.c
819
rc = qede_config_accept_any_vlan(edev, true);
drivers/net/ethernet/qlogic/qede/qede_filter.c
820
else if (!edev->non_configured_vlans)
drivers/net/ethernet/qlogic/qede/qede_filter.c
821
rc = qede_config_accept_any_vlan(edev, false);
drivers/net/ethernet/qlogic/qede/qede_filter.c
831
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
835
DP_VERBOSE(edev, NETIF_MSG_IFDOWN, "Removing vlan 0x%04x\n", vid);
drivers/net/ethernet/qlogic/qede/qede_filter.c
838
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
839
list_for_each_entry(vlan, &edev->vlan_list, list)
drivers/net/ethernet/qlogic/qede/qede_filter.c
843
if (list_entry_is_head(vlan, &edev->vlan_list, list)) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
844
DP_VERBOSE(edev, (NETIF_MSG_IFUP | NETIF_MSG_IFDOWN),
drivers/net/ethernet/qlogic/qede/qede_filter.c
849
if (edev->state != QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
853
DP_VERBOSE(edev, NETIF_MSG_IFDOWN,
drivers/net/ethernet/qlogic/qede/qede_filter.c
855
qede_del_vlan_from_list(edev, vlan);
drivers/net/ethernet/qlogic/qede/qede_filter.c
861
rc = qede_set_ucast_rx_vlan(edev, QED_FILTER_XCAST_TYPE_DEL,
drivers/net/ethernet/qlogic/qede/qede_filter.c
864
DP_ERR(edev, "Failed to remove VLAN %d\n", vid);
drivers/net/ethernet/qlogic/qede/qede_filter.c
869
qede_del_vlan_from_list(edev, vlan);
drivers/net/ethernet/qlogic/qede/qede_filter.c
874
rc = qede_configure_vlan_filters(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
877
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
88
static void qede_configure_arfs_fltr(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
881
void qede_vlan_mark_nonconfigured(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_filter.c
885
if (list_empty(&edev->vlan_list))
drivers/net/ethernet/qlogic/qede/qede_filter.c
888
list_for_each_entry(vlan, &edev->vlan_list, list) {
drivers/net/ethernet/qlogic/qede/qede_filter.c
896
edev->non_configured_vlans++;
drivers/net/ethernet/qlogic/qede/qede_filter.c
897
edev->configured_vlans--;
drivers/net/ethernet/qlogic/qede/qede_filter.c
900
DP_VERBOSE(edev, NETIF_MSG_IFDOWN,
drivers/net/ethernet/qlogic/qede/qede_filter.c
904
edev->accept_any_vlan = false;
drivers/net/ethernet/qlogic/qede/qede_filter.c
907
static void qede_set_features_reload(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_filter.c
910
edev->ndev->features = args->u.features;
drivers/net/ethernet/qlogic/qede/qede_filter.c
916
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
918
if (edev->xdp_prog || edev->ndev->mtu > PAGE_SIZE ||
drivers/net/ethernet/qlogic/qede/qede_filter.c
92
const struct qed_eth_ops *op = edev->ops;
drivers/net/ethernet/qlogic/qede/qede_filter.c
927
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
944
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
945
if (edev->xdp_prog)
drivers/net/ethernet/qlogic/qede/qede_filter.c
946
args.func(edev, &args);
drivers/net/ethernet/qlogic/qede/qede_filter.c
948
qede_reload(edev, &args, true);
drivers/net/ethernet/qlogic/qede/qede_filter.c
949
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
959
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
971
save_port = &edev->vxlan_dst_port;
drivers/net/ethernet/qlogic/qede/qede_filter.c
975
save_port = &edev->geneve_dst_port;
drivers/net/ethernet/qlogic/qede/qede_filter.c
978
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_filter.c
979
rc = edev->ops->tunn_config(edev->cdev, &tunn_params);
drivers/net/ethernet/qlogic/qede/qede_filter.c
980
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1001
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1005
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1010
skb->protocol = eth_type_trans(skb, edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1018
qede_gro_receive(edev, fp, skb, tpa_info->vlan_tag);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1080
static bool qede_rx_xdp(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
109
dma_unmap_single(&edev->pdev->dev, BD_UNMAP_ADDR(first_bd),
drivers/net/ethernet/qlogic/qede/qede_fp.c
1113
trace_xdp_exception(edev->ndev, prog, act);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1127
trace_xdp_exception(edev->ndev, prog, act);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1143
trace_xdp_exception(edev->ndev, prog, act);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1150
if (unlikely(xdp_do_redirect(edev->ndev, &xdp, prog)))
drivers/net/ethernet/qlogic/qede/qede_fp.c
1151
DP_NOTICE(edev, "Failed to redirect the packet\n");
drivers/net/ethernet/qlogic/qede/qede_fp.c
1158
bpf_warn_invalid_xdp_action(edev->ndev, prog, act);
drivers/net/ethernet/qlogic/qede/qede_fp.c
116
dma_unmap_page(&edev->pdev->dev, BD_UNMAP_ADDR(tx_data_bd),
drivers/net/ethernet/qlogic/qede/qede_fp.c
1161
trace_xdp_exception(edev->ndev, prog, act);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1170
static int qede_rx_build_jumbo(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1189
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1216
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1224
static int qede_rx_process_tpa_cqe(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1232
qede_tpa_start(edev, rxq, &cqe->fast_path_tpa_start);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1235
qede_tpa_cont(edev, rxq, &cqe->fast_path_tpa_cont);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1238
return qede_tpa_end(edev, fp, &cqe->fast_path_tpa_end);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1244
static int qede_rx_process_cqe(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1267
edev->ops->eth_cqe_completion(edev->cdev, fp->id, sp_cqe);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1273
return qede_rx_process_tpa_cqe(edev, fp, rxq, cqe, cqe_type);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1287
if (!qede_rx_xdp(edev, fp, rxq, xdp_prog, bd, fp_cqe,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1306
skb = qede_rx_build_skb(edev, rxq, bd, len, pad);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1317
u16 unmapped_frags = qede_rx_build_jumbo(edev, rxq, skb,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1328
skb->protocol = eth_type_trans(skb, edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1332
qede_ptp_record_rx_ts(edev, cqe, skb);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1335
qede_skb_receive(edev, fp, rxq, skb, le16_to_cpu(fp_cqe->vlan_tag));
drivers/net/ethernet/qlogic/qede/qede_fp.c
1343
struct qede_dev *edev = fp->edev;
drivers/net/ethernet/qlogic/qede/qede_fp.c
1359
rcv_pkts += qede_rx_process_cqe(edev, fp, rxq);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1373
qede_update_rx_prod(edev, rxq);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1405
for_each_cos_in_txq(fp->edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_fp.c
1421
struct qede_dev *edev = fp->edev;
drivers/net/ethernet/qlogic/qede/qede_fp.c
1430
for_each_cos_in_txq(fp->edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_fp.c
1432
qede_tx_int(edev, &fp->txq[cos]);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1437
qede_xdp_tx_int(edev, fp->xdp_tx);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1481
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1499
WARN_ON(txq_index >= QEDE_TSS_COUNT(edev) * edev->dev_info.num_tc);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1500
txq = QEDE_NDEV_TXQ_ID_TO_TXQ(edev, txq_index);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1528
qede_ptp_tx_ts(edev, skb);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1534
DP_NOTICE(edev, "SKB mapping failed\n");
drivers/net/ethernet/qlogic/qede/qede_fp.c
1626
DP_VERBOSE(edev, NETIF_MSG_TX_QUEUED,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1651
DP_ERR(edev, "Unexpected non LSO skb length = 0x%x\n", skb->len);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1726
DP_VERBOSE(edev, NETIF_MSG_TX_QUEUED,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1736
(edev->state == QEDE_STATE_OPEN)) {
drivers/net/ethernet/qlogic/qede/qede_fp.c
1738
DP_VERBOSE(edev, NETIF_MSG_TX_QUEUED,
drivers/net/ethernet/qlogic/qede/qede_fp.c
1749
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1752
total_txq = QEDE_TSS_COUNT(edev) * edev->dev_info.num_tc;
drivers/net/ethernet/qlogic/qede/qede_fp.c
1754
return QEDE_TSS_COUNT(edev) ?
drivers/net/ethernet/qlogic/qede/qede_fp.c
1784
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_fp.c
1788
vxln_port = edev->vxlan_dst_port;
drivers/net/ethernet/qlogic/qede/qede_fp.c
1789
gnv_port = edev->geneve_dst_port;
drivers/net/ethernet/qlogic/qede/qede_fp.c
343
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_fp.c
344
struct device *dmadev = &edev->pdev->dev;
drivers/net/ethernet/qlogic/qede/qede_fp.c
357
i = smp_processor_id() % edev->total_xdp_queues;
drivers/net/ethernet/qlogic/qede/qede_fp.c
358
xdp_tx = edev->fp_array[i].xdp_tx;
drivers/net/ethernet/qlogic/qede/qede_fp.c
401
static void qede_xdp_tx_int(struct qede_dev *edev, struct qede_tx_queue *txq)
drivers/net/ethernet/qlogic/qede/qede_fp.c
404
struct device *dev = &edev->pdev->dev;
drivers/net/ethernet/qlogic/qede/qede_fp.c
433
static int qede_tx_int(struct qede_dev *edev, struct qede_tx_queue *txq)
drivers/net/ethernet/qlogic/qede/qede_fp.c
440
netdev_txq = netdev_get_tx_queue(edev->ndev, txq->ndev_txq_id);
drivers/net/ethernet/qlogic/qede/qede_fp.c
448
rc = qede_free_tx_pkt(edev, txq, &len);
drivers/net/ethernet/qlogic/qede/qede_fp.c
450
DP_NOTICE(edev, "hw_bd_cons = %d, chain_cons=%d\n",
drivers/net/ethernet/qlogic/qede/qede_fp.c
489
(edev->state == QEDE_STATE_OPEN) &&
drivers/net/ethernet/qlogic/qede/qede_fp.c
493
DP_VERBOSE(edev, NETIF_MSG_TX_DONE,
drivers/net/ethernet/qlogic/qede/qede_fp.c
589
void qede_update_rx_prod(struct qede_dev *edev, struct qede_rx_queue *rxq)
drivers/net/ethernet/qlogic/qede/qede_fp.c
638
static inline void qede_skb_receive(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
649
static void qede_set_gro_params(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
665
static int qede_fill_frag_skb(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
760
qede_tpa_rx_build_skb(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
77
int qede_free_tx_pkt(struct qede_dev *edev, struct qede_tx_queue *txq, int *len)
drivers/net/ethernet/qlogic/qede/qede_fp.c
772
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
791
qede_rx_build_skb(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
801
if ((len + pad <= edev->rx_copybreak)) {
drivers/net/ethernet/qlogic/qede/qede_fp.c
804
skb = netdev_alloc_skb(edev->ndev, QEDE_RX_HDR_SIZE);
drivers/net/ethernet/qlogic/qede/qede_fp.c
832
static void qede_tpa_start(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
843
tpa_info->skb = qede_tpa_rx_build_skb(edev, rxq, sw_rx_data_cons,
drivers/net/ethernet/qlogic/qede/qede_fp.c
850
DP_NOTICE(edev, "Failed to allocate SKB for gro\n");
drivers/net/ethernet/qlogic/qede/qede_fp.c
875
qede_set_gro_params(edev, tpa_info->skb, cqe);
drivers/net/ethernet/qlogic/qede/qede_fp.c
879
qede_fill_frag_skb(edev, rxq, cqe->tpa_agg_index,
drivers/net/ethernet/qlogic/qede/qede_fp.c
883
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
89
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
918
static void qede_gro_receive(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
946
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
955
qede_skb_receive(edev, fp, fp->rxq, skb, vlan_tag);
drivers/net/ethernet/qlogic/qede/qede_fp.c
958
static inline void qede_tpa_cont(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
965
qede_fill_frag_skb(edev, rxq, cqe->tpa_agg_index,
drivers/net/ethernet/qlogic/qede/qede_fp.c
969
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
973
static int qede_tpa_end(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_fp.c
990
qede_fill_frag_skb(edev, rxq, cqe->tpa_agg_index,
drivers/net/ethernet/qlogic/qede/qede_fp.c
993
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1008
fp->txq = kzalloc_objs(*fp->txq, edev->dev_info.num_tc);
drivers/net/ethernet/qlogic/qede/qede_main.c
1018
if (edev->xdp_prog) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1029
qede_free_fp_array(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1036
void __qede_lock(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1038
mutex_lock(&edev->qede_lock);
drivers/net/ethernet/qlogic/qede/qede_main.c
1041
void __qede_unlock(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1043
mutex_unlock(&edev->qede_lock);
drivers/net/ethernet/qlogic/qede/qede_main.c
1049
static void qede_lock(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1052
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1055
static void qede_unlock(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1057
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1063
struct qede_dev *edev = container_of(work, struct qede_dev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1066
qede_fill_by_demand_stats(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1067
schedule_delayed_work(&edev->periodic_task, edev->stats_coal_ticks);
drivers/net/ethernet/qlogic/qede/qede_main.c
1070
static void qede_init_periodic_task(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1072
INIT_DELAYED_WORK(&edev->periodic_task, qede_periodic_task);
drivers/net/ethernet/qlogic/qede/qede_main.c
1073
spin_lock_init(&edev->stats_lock);
drivers/net/ethernet/qlogic/qede/qede_main.c
1074
edev->stats_coal_usecs = USEC_PER_SEC;
drivers/net/ethernet/qlogic/qede/qede_main.c
1075
edev->stats_coal_ticks = usecs_to_jiffies(USEC_PER_SEC);
drivers/net/ethernet/qlogic/qede/qede_main.c
1080
struct qede_dev *edev = container_of(work, struct qede_dev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1087
if (test_bit(QEDE_SP_DISABLE, &edev->sp_flags))
drivers/net/ethernet/qlogic/qede/qede_main.c
1096
if (test_and_clear_bit(QEDE_SP_RECOVERY, &edev->sp_flags)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1097
cancel_delayed_work_sync(&edev->periodic_task);
drivers/net/ethernet/qlogic/qede/qede_main.c
110
static void qede_recovery_handler(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1102
if (pci_num_vf(edev->pdev))
drivers/net/ethernet/qlogic/qede/qede_main.c
1103
qede_sriov_configure(edev->pdev, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
1105
qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1106
qede_recovery_handler(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1107
qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1110
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1112
if (test_and_clear_bit(QEDE_SP_RX_MODE, &edev->sp_flags))
drivers/net/ethernet/qlogic/qede/qede_main.c
1113
if (edev->state == QEDE_STATE_OPEN)
drivers/net/ethernet/qlogic/qede/qede_main.c
1114
qede_config_rx_mode(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1117
if (test_and_clear_bit(QEDE_SP_ARFS_CONFIG, &edev->sp_flags)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1118
if (edev->state == QEDE_STATE_OPEN)
drivers/net/ethernet/qlogic/qede/qede_main.c
1119
qede_process_arfs_filters(edev, false);
drivers/net/ethernet/qlogic/qede/qede_main.c
1122
if (test_and_clear_bit(QEDE_SP_HW_ERR, &edev->sp_flags))
drivers/net/ethernet/qlogic/qede/qede_main.c
1123
qede_generic_hw_err_handler(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1124
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1126
if (test_and_clear_bit(QEDE_SP_AER, &edev->sp_flags)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
113
static void qede_get_eth_tlv_data(void *edev, void *data);
drivers/net/ethernet/qlogic/qede/qede_main.c
1131
if (pci_num_vf(edev->pdev))
drivers/net/ethernet/qlogic/qede/qede_main.c
1132
qede_sriov_configure(edev->pdev, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
1134
edev->ops->common->recovery_process(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_main.c
114
static void qede_get_generic_tlv_data(void *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
116
static void qede_generic_hw_err_handler(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1162
static void qede_log_probe(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1164
struct qed_dev_info *p_dev_info = &edev->dev_info.common;
drivers/net/ethernet/qlogic/qede/qede_main.c
1192
pr_info("qede %02x:%02x.%02x: %s [%s]\n", edev->pdev->bus->number,
drivers/net/ethernet/qlogic/qede/qede_main.c
1193
PCI_SLOT(edev->pdev->devfn), PCI_FUNC(edev->pdev->devfn),
drivers/net/ethernet/qlogic/qede/qede_main.c
1194
buf, edev->ndev->name);
drivers/net/ethernet/qlogic/qede/qede_main.c
1208
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_main.c
121
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
124
DP_NOTICE(edev, "Illegal vlan value %d\n", vlan);
drivers/net/ethernet/qlogic/qede/qede_main.c
1245
edev = qede_alloc_etherdev(cdev, pdev, &dev_info, dp_module,
drivers/net/ethernet/qlogic/qede/qede_main.c
1247
if (!edev) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1252
edev->devlink = qed_ops->common->devlink_register(cdev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1253
if (IS_ERR(edev->devlink)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1254
DP_NOTICE(edev, "Cannot register devlink\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1255
rc = PTR_ERR(edev->devlink);
drivers/net/ethernet/qlogic/qede/qede_main.c
1256
edev->devlink = NULL;
drivers/net/ethernet/qlogic/qede/qede_main.c
1263
edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1264
qdl = devlink_priv(edev->devlink);
drivers/net/ethernet/qlogic/qede/qede_main.c
1266
edev->cdev = cdev;
drivers/net/ethernet/qlogic/qede/qede_main.c
1267
memset(&edev->stats, 0, sizeof(edev->stats));
drivers/net/ethernet/qlogic/qede/qede_main.c
1268
memcpy(&edev->dev_info, &dev_info, sizeof(dev_info));
drivers/net/ethernet/qlogic/qede/qede_main.c
1272
set_bit(QEDE_FLAGS_IS_VF, &edev->flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
1274
qede_init_ndev(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1276
rc = qede_rdma_dev_add(edev, (mode == QEDE_PROBE_RECOVERY));
drivers/net/ethernet/qlogic/qede/qede_main.c
1286
INIT_DELAYED_WORK(&edev->sp_task, qede_sp_task);
drivers/net/ethernet/qlogic/qede/qede_main.c
1287
mutex_init(&edev->qede_lock);
drivers/net/ethernet/qlogic/qede/qede_main.c
1288
qede_init_periodic_task(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1290
rc = register_netdev(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1292
DP_NOTICE(edev, "Cannot register net-device\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1297
edev->ops->common->set_name(cdev, edev->ndev->name);
drivers/net/ethernet/qlogic/qede/qede_main.c
1301
qede_ptp_enable(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1303
edev->ops->register_ops(cdev, &qede_ll_ops, edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1306
if (!IS_VF(edev))
drivers/net/ethernet/qlogic/qede/qede_main.c
1307
qede_set_dcbnl_ops(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
131
DP_VERBOSE(edev, QED_MSG_IOV, "Setting Vlan 0x%04x to VF [%d]\n",
drivers/net/ethernet/qlogic/qede/qede_main.c
1310
edev->rx_copybreak = QEDE_RX_HDR_SIZE;
drivers/net/ethernet/qlogic/qede/qede_main.c
1312
qede_log_probe(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1315
if (edev->stats_coal_usecs)
drivers/net/ethernet/qlogic/qede/qede_main.c
1316
schedule_delayed_work(&edev->periodic_task, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
1321
qede_rdma_dev_remove(edev, (mode == QEDE_PROBE_RECOVERY));
drivers/net/ethernet/qlogic/qede/qede_main.c
1324
free_netdev(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1326
edev->cdev = NULL;
drivers/net/ethernet/qlogic/qede/qede_main.c
134
return edev->ops->iov->set_vlan(edev->cdev, vlan, vf);
drivers/net/ethernet/qlogic/qede/qede_main.c
1366
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_main.c
1374
edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1375
cdev = edev->cdev;
drivers/net/ethernet/qlogic/qede/qede_main.c
1377
DP_INFO(edev, "Starting qede_remove\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1379
qede_rdma_dev_remove(edev, (mode == QEDE_REMOVE_RECOVERY));
drivers/net/ethernet/qlogic/qede/qede_main.c
1382
set_bit(QEDE_SP_DISABLE, &edev->sp_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
1385
cancel_delayed_work_sync(&edev->sp_task);
drivers/net/ethernet/qlogic/qede/qede_main.c
1386
cancel_delayed_work_sync(&edev->periodic_task);
drivers/net/ethernet/qlogic/qede/qede_main.c
1388
edev->ops->common->set_power_state(cdev, PCI_D0);
drivers/net/ethernet/qlogic/qede/qede_main.c
139
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1393
qede_ptp_disable(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1400
if (mode != QEDE_REMOVE_RECOVERY && edev->devlink) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1401
qed_ops->common->devlink_unregister(edev->devlink);
drivers/net/ethernet/qlogic/qede/qede_main.c
1402
edev->devlink = NULL;
drivers/net/ethernet/qlogic/qede/qede_main.c
1405
edev->cdev = NULL;
drivers/net/ethernet/qlogic/qede/qede_main.c
141
DP_VERBOSE(edev, QED_MSG_IOV, "Setting MAC %pM to VF [%d]\n", mac, vfidx);
drivers/net/ethernet/qlogic/qede/qede_main.c
1414
kfree(edev->coal_entry);
drivers/net/ethernet/qlogic/qede/qede_main.c
1436
static int qede_set_num_queues(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
144
DP_VERBOSE(edev, QED_MSG_IOV, "MAC address isn't valid\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1442
if (edev->req_queues)
drivers/net/ethernet/qlogic/qede/qede_main.c
1443
rss_num = edev->req_queues;
drivers/net/ethernet/qlogic/qede/qede_main.c
1446
edev->dev_info.common.num_hwfns;
drivers/net/ethernet/qlogic/qede/qede_main.c
1448
rss_num = min_t(u16, QEDE_MAX_RSS_CNT(edev), rss_num);
drivers/net/ethernet/qlogic/qede/qede_main.c
1450
rc = edev->ops->common->set_fp_int(edev->cdev, rss_num);
drivers/net/ethernet/qlogic/qede/qede_main.c
1453
edev->num_queues = rc;
drivers/net/ethernet/qlogic/qede/qede_main.c
1454
DP_INFO(edev, "Managed %d [of %d] RSS queues\n",
drivers/net/ethernet/qlogic/qede/qede_main.c
1455
QEDE_QUEUE_CNT(edev), rss_num);
drivers/net/ethernet/qlogic/qede/qede_main.c
1459
edev->fp_num_tx = edev->req_num_tx;
drivers/net/ethernet/qlogic/qede/qede_main.c
1460
edev->fp_num_rx = edev->req_num_rx;
drivers/net/ethernet/qlogic/qede/qede_main.c
1465
static void qede_free_mem_sb(struct qede_dev *edev, struct qed_sb_info *sb_info,
drivers/net/ethernet/qlogic/qede/qede_main.c
1469
edev->ops->common->sb_release(edev->cdev, sb_info, sb_id,
drivers/net/ethernet/qlogic/qede/qede_main.c
1471
dma_free_coherent(&edev->pdev->dev, sizeof(*sb_info->sb_virt),
drivers/net/ethernet/qlogic/qede/qede_main.c
1478
static int qede_alloc_mem_sb(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
148
return edev->ops->iov->set_mac(edev->cdev, mac, vfidx);
drivers/net/ethernet/qlogic/qede/qede_main.c
1485
sb_virt = dma_alloc_coherent(&edev->pdev->dev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1488
DP_ERR(edev, "Status block allocation failed\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1492
rc = edev->ops->common->sb_init(edev->cdev, sb_info,
drivers/net/ethernet/qlogic/qede/qede_main.c
1496
DP_ERR(edev, "Status block initialization failed\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1497
dma_free_coherent(&edev->pdev->dev, sizeof(*sb_virt),
drivers/net/ethernet/qlogic/qede/qede_main.c
1505
static void qede_free_rx_buffers(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1517
dma_unmap_page(&edev->pdev->dev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1525
static void qede_free_mem_rxq(struct qede_dev *edev, struct qede_rx_queue *rxq)
drivers/net/ethernet/qlogic/qede/qede_main.c
1528
qede_free_rx_buffers(edev, rxq);
drivers/net/ethernet/qlogic/qede/qede_main.c
153
struct qede_dev *edev = netdev_priv(pci_get_drvdata(pdev));
drivers/net/ethernet/qlogic/qede/qede_main.c
1534
edev->ops->common->chain_free(edev->cdev, &rxq->rx_bd_ring);
drivers/net/ethernet/qlogic/qede/qede_main.c
1535
edev->ops->common->chain_free(edev->cdev, &rxq->rx_comp_ring);
drivers/net/ethernet/qlogic/qede/qede_main.c
154
struct qed_dev_info *qed_info = &edev->dev_info.common;
drivers/net/ethernet/qlogic/qede/qede_main.c
1550
static int qede_alloc_mem_rxq(struct qede_dev *edev, struct qede_rx_queue *rxq)
drivers/net/ethernet/qlogic/qede/qede_main.c
1556
struct qed_dev *cdev = edev->cdev;
drivers/net/ethernet/qlogic/qede/qede_main.c
1559
rxq->num_rx_buffers = edev->q_num_rx_buffers;
drivers/net/ethernet/qlogic/qede/qede_main.c
1561
rxq->rx_buf_size = NET_IP_ALIGN + ETH_OVERHEAD + edev->ndev->mtu;
drivers/net/ethernet/qlogic/qede/qede_main.c
1563
rxq->rx_headroom = edev->xdp_prog ? XDP_PACKET_HEADROOM : NET_SKB_PAD;
drivers/net/ethernet/qlogic/qede/qede_main.c
1574
if (!edev->xdp_prog) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1579
edev->ndev->features &= ~NETIF_F_GRO_HW;
drivers/net/ethernet/qlogic/qede/qede_main.c
1586
DP_ERR(edev, "Rx buffers ring allocation failed\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1596
rc = edev->ops->common->chain_alloc(cdev, &rxq->rx_bd_ring, ¶ms);
drivers/net/ethernet/qlogic/qede/qede_main.c
1605
rc = edev->ops->common->chain_alloc(cdev, &rxq->rx_comp_ring, ¶ms);
drivers/net/ethernet/qlogic/qede/qede_main.c
161
DP_VERBOSE(edev, QED_MSG_IOV, "Requested %d VFs\n", num_vfs_param);
drivers/net/ethernet/qlogic/qede/qede_main.c
1614
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1620
edev->gro_disable = !(edev->ndev->features & NETIF_F_GRO_HW);
drivers/net/ethernet/qlogic/qede/qede_main.c
1621
if (!edev->gro_disable)
drivers/net/ethernet/qlogic/qede/qede_main.c
1627
static void qede_free_mem_txq(struct qede_dev *edev, struct qede_tx_queue *txq)
drivers/net/ethernet/qlogic/qede/qede_main.c
163
rc = edev->ops->iov->configure(edev->cdev, num_vfs_param);
drivers/net/ethernet/qlogic/qede/qede_main.c
1636
edev->ops->common->chain_free(edev->cdev, &txq->tx_pbl);
drivers/net/ethernet/qlogic/qede/qede_main.c
1640
static int qede_alloc_mem_txq(struct qede_dev *edev, struct qede_tx_queue *txq)
drivers/net/ethernet/qlogic/qede/qede_main.c
1646
.num_elems = edev->q_num_tx_buffers,
drivers/net/ethernet/qlogic/qede/qede_main.c
1651
txq->num_tx_buffers = edev->q_num_tx_buffers;
drivers/net/ethernet/qlogic/qede/qede_main.c
166
if ((rc == num_vfs_param) && netif_running(edev->ndev) &&
drivers/net/ethernet/qlogic/qede/qede_main.c
1666
rc = edev->ops->common->chain_alloc(edev->cdev, &txq->tx_pbl, ¶ms);
drivers/net/ethernet/qlogic/qede/qede_main.c
1673
qede_free_mem_txq(edev, txq);
drivers/net/ethernet/qlogic/qede/qede_main.c
1678
static void qede_free_mem_fp(struct qede_dev *edev, struct qede_fastpath *fp)
drivers/net/ethernet/qlogic/qede/qede_main.c
1680
qede_free_mem_sb(edev, fp->sb_info, fp->id);
drivers/net/ethernet/qlogic/qede/qede_main.c
1683
qede_free_mem_rxq(edev, fp->rxq);
drivers/net/ethernet/qlogic/qede/qede_main.c
1686
qede_free_mem_txq(edev, fp->xdp_tx);
drivers/net/ethernet/qlogic/qede/qede_main.c
1691
for_each_cos_in_txq(edev, cos)
drivers/net/ethernet/qlogic/qede/qede_main.c
1692
qede_free_mem_txq(edev, &fp->txq[cos]);
drivers/net/ethernet/qlogic/qede/qede_main.c
1699
static int qede_alloc_mem_fp(struct qede_dev *edev, struct qede_fastpath *fp)
drivers/net/ethernet/qlogic/qede/qede_main.c
1703
rc = qede_alloc_mem_sb(edev, fp->sb_info, fp->id);
drivers/net/ethernet/qlogic/qede/qede_main.c
1708
rc = qede_alloc_mem_rxq(edev, fp->rxq);
drivers/net/ethernet/qlogic/qede/qede_main.c
171
edev->ops->vport_update(edev->cdev, vport_params);
drivers/net/ethernet/qlogic/qede/qede_main.c
1714
rc = qede_alloc_mem_txq(edev, fp->xdp_tx);
drivers/net/ethernet/qlogic/qede/qede_main.c
1722
for_each_cos_in_txq(edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1723
rc = qede_alloc_mem_txq(edev, &fp->txq[cos]);
drivers/net/ethernet/qlogic/qede/qede_main.c
1733
static void qede_free_mem_load(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1738
struct qede_fastpath *fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
1740
qede_free_mem_fp(edev, fp);
drivers/net/ethernet/qlogic/qede/qede_main.c
1745
static int qede_alloc_mem_load(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1749
for (queue_id = 0; queue_id < QEDE_QUEUE_CNT(edev); queue_id++) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1750
struct qede_fastpath *fp = &edev->fp_array[queue_id];
drivers/net/ethernet/qlogic/qede/qede_main.c
1752
rc = qede_alloc_mem_fp(edev, fp);
drivers/net/ethernet/qlogic/qede/qede_main.c
1754
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1757
qede_free_mem_load(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1765
static void qede_empty_tx_queue(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1772
netdev_txq = netdev_get_tx_queue(edev->ndev, txq->ndev_txq_id);
drivers/net/ethernet/qlogic/qede/qede_main.c
1776
DP_VERBOSE(edev, NETIF_MSG_IFDOWN,
drivers/net/ethernet/qlogic/qede/qede_main.c
1781
rc = qede_free_tx_pkt(edev, txq, &len);
drivers/net/ethernet/qlogic/qede/qede_main.c
1783
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1799
static void qede_empty_tx_queues(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1804
if (edev->fp_array[i].type & QEDE_FASTPATH_TX) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1807
for_each_cos_in_txq(edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1810
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
1811
qede_empty_tx_queue(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1818
static void qede_init_fp(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1825
fp = &edev->fp_array[queue_id];
drivers/net/ethernet/qlogic/qede/qede_main.c
1827
fp->edev = edev;
drivers/net/ethernet/qlogic/qede/qede_main.c
1831
fp->xdp_tx->index = QEDE_TXQ_IDX_TO_XDP(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1847
fp->rxq->dev = &edev->pdev->dev;
drivers/net/ethernet/qlogic/qede/qede_main.c
1850
WARN_ON(xdp_rxq_info_reg(&fp->rxq->xdp_rxq, edev->ndev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1856
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1864
for_each_cos_in_txq(edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1870
ndev_tx_id = QEDE_TXQ_TO_NDEV_TXQ_ID(edev, txq);
drivers/net/ethernet/qlogic/qede/qede_main.c
1873
if (edev->dev_info.is_legacy)
drivers/net/ethernet/qlogic/qede/qede_main.c
1875
txq->dev = &edev->pdev->dev;
drivers/net/ethernet/qlogic/qede/qede_main.c
1882
edev->ndev->name, queue_id);
drivers/net/ethernet/qlogic/qede/qede_main.c
1886
edev->total_xdp_queues = QEDE_RSS_COUNT(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1887
DP_INFO(edev, "Total XDP queues: %u\n", edev->total_xdp_queues);
drivers/net/ethernet/qlogic/qede/qede_main.c
1891
static int qede_set_real_num_queues(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1895
rc = netif_set_real_num_tx_queues(edev->ndev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1896
QEDE_TSS_COUNT(edev) *
drivers/net/ethernet/qlogic/qede/qede_main.c
1897
edev->dev_info.num_tc);
drivers/net/ethernet/qlogic/qede/qede_main.c
1899
DP_NOTICE(edev, "Failed to set real number of Tx queues\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1903
rc = netif_set_real_num_rx_queues(edev->ndev, QEDE_RSS_COUNT(edev));
drivers/net/ethernet/qlogic/qede/qede_main.c
1905
DP_NOTICE(edev, "Failed to set real number of Rx queues\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1912
static void qede_napi_disable_remove(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1917
napi_disable(&edev->fp_array[i].napi);
drivers/net/ethernet/qlogic/qede/qede_main.c
1919
netif_napi_del(&edev->fp_array[i].napi);
drivers/net/ethernet/qlogic/qede/qede_main.c
1923
static void qede_napi_add_enable(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1929
netif_napi_add(edev->ndev, &edev->fp_array[i].napi, qede_poll);
drivers/net/ethernet/qlogic/qede/qede_main.c
1930
napi_enable(&edev->fp_array[i].napi);
drivers/net/ethernet/qlogic/qede/qede_main.c
1934
static void qede_sync_free_irqs(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1938
for (i = 0; i < edev->int_info.used_cnt; i++) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1939
if (edev->int_info.msix_cnt) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1940
free_irq(edev->int_info.msix[i].vector,
drivers/net/ethernet/qlogic/qede/qede_main.c
1941
&edev->fp_array[i]);
drivers/net/ethernet/qlogic/qede/qede_main.c
1943
edev->ops->common->simd_handler_clean(edev->cdev, i);
drivers/net/ethernet/qlogic/qede/qede_main.c
1947
edev->int_info.used_cnt = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
1948
edev->int_info.msix_cnt = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
1951
static int qede_req_msix_irqs(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
1956
if (QEDE_QUEUE_CNT(edev) > edev->int_info.msix_cnt) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1957
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
1959
QEDE_QUEUE_CNT(edev), edev->int_info.msix_cnt);
drivers/net/ethernet/qlogic/qede/qede_main.c
1963
for (i = 0; i < QEDE_QUEUE_CNT(edev); i++) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1965
struct qede_fastpath *fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
1967
if (edev->ndev->rx_cpu_rmap && (fp->type & QEDE_FASTPATH_RX)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
1968
rc = irq_cpu_rmap_add(edev->ndev->rx_cpu_rmap,
drivers/net/ethernet/qlogic/qede/qede_main.c
1969
edev->int_info.msix[i].vector);
drivers/net/ethernet/qlogic/qede/qede_main.c
1971
DP_ERR(edev, "Failed to add CPU rmap\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
1972
qede_free_arfs(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1976
rc = request_irq(edev->int_info.msix[i].vector,
drivers/net/ethernet/qlogic/qede/qede_main.c
1977
qede_msix_fp_int, 0, edev->fp_array[i].name,
drivers/net/ethernet/qlogic/qede/qede_main.c
1978
&edev->fp_array[i]);
drivers/net/ethernet/qlogic/qede/qede_main.c
1980
DP_ERR(edev, "Request fp %d irq failed\n", i);
drivers/net/ethernet/qlogic/qede/qede_main.c
1982
if (edev->ndev->rx_cpu_rmap)
drivers/net/ethernet/qlogic/qede/qede_main.c
1983
free_irq_cpu_rmap(edev->ndev->rx_cpu_rmap);
drivers/net/ethernet/qlogic/qede/qede_main.c
1985
edev->ndev->rx_cpu_rmap = NULL;
drivers/net/ethernet/qlogic/qede/qede_main.c
1987
qede_sync_free_irqs(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
1990
DP_VERBOSE(edev, NETIF_MSG_INTR,
drivers/net/ethernet/qlogic/qede/qede_main.c
1992
edev->fp_array[i].name, i,
drivers/net/ethernet/qlogic/qede/qede_main.c
1993
&edev->fp_array[i]);
drivers/net/ethernet/qlogic/qede/qede_main.c
1994
edev->int_info.used_cnt++;
drivers/net/ethernet/qlogic/qede/qede_main.c
2007
static int qede_setup_irqs(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
2012
rc = edev->ops->common->get_fp_int(edev->cdev, &edev->int_info);
drivers/net/ethernet/qlogic/qede/qede_main.c
2016
if (edev->int_info.msix_cnt) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2017
rc = qede_req_msix_irqs(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2020
edev->ndev->irq = edev->int_info.msix[0].vector;
drivers/net/ethernet/qlogic/qede/qede_main.c
2025
ops = edev->ops->common;
drivers/net/ethernet/qlogic/qede/qede_main.c
2026
for (i = 0; i < QEDE_QUEUE_CNT(edev); i++)
drivers/net/ethernet/qlogic/qede/qede_main.c
2027
ops->simd_handler_config(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2028
&edev->fp_array[i], i,
drivers/net/ethernet/qlogic/qede/qede_main.c
2030
edev->int_info.used_cnt = QEDE_QUEUE_CNT(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2035
static int qede_drain_txq(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2043
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2046
rc = edev->ops->common->drain(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2049
return qede_drain_txq(edev, txq, false);
drivers/net/ethernet/qlogic/qede/qede_main.c
2051
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2068
static int qede_stop_txq(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2072
edev->ops->common->db_recovery_del(edev->cdev, txq->doorbell_addr,
drivers/net/ethernet/qlogic/qede/qede_main.c
2075
return edev->ops->q_tx_stop(edev->cdev, rss_id, txq->handle);
drivers/net/ethernet/qlogic/qede/qede_main.c
2078
static int qede_stop_queues(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
2081
struct qed_dev *cdev = edev->cdev;
drivers/net/ethernet/qlogic/qede/qede_main.c
2095
rc = edev->ops->vport_update(cdev, vport_update_params);
drivers/net/ethernet/qlogic/qede/qede_main.c
2099
DP_ERR(edev, "Failed to update vport\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2105
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
2110
for_each_cos_in_txq(edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2111
rc = qede_drain_txq(edev, &fp->txq[cos], true);
drivers/net/ethernet/qlogic/qede/qede_main.c
2118
rc = qede_drain_txq(edev, fp->xdp_tx, true);
drivers/net/ethernet/qlogic/qede/qede_main.c
2125
for (i = QEDE_QUEUE_CNT(edev) - 1; i >= 0; i--) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2126
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
2132
for_each_cos_in_txq(edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2133
rc = qede_stop_txq(edev, &fp->txq[cos], i);
drivers/net/ethernet/qlogic/qede/qede_main.c
2141
rc = edev->ops->q_rx_stop(cdev, i, fp->rxq->handle);
drivers/net/ethernet/qlogic/qede/qede_main.c
2143
DP_ERR(edev, "Failed to stop RXQ #%d\n", i);
drivers/net/ethernet/qlogic/qede/qede_main.c
2150
rc = qede_stop_txq(edev, fp->xdp_tx, i);
drivers/net/ethernet/qlogic/qede/qede_main.c
2159
rc = edev->ops->vport_stop(cdev, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
2161
DP_ERR(edev, "Failed to stop VPORT\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2166
static int qede_start_txq(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2183
params.queue_id = QEDE_TXQ_XDP_TO_IDX(edev, txq);
drivers/net/ethernet/qlogic/qede/qede_main.c
2191
rc = edev->ops->q_tx_start(edev->cdev, rss_id, ¶ms, phys_table,
drivers/net/ethernet/qlogic/qede/qede_main.c
2194
DP_ERR(edev, "Start TXQ #%d failed %d\n", txq->index, rc);
drivers/net/ethernet/qlogic/qede/qede_main.c
2212
rc = edev->ops->common->db_recovery_add(edev->cdev, txq->doorbell_addr,
drivers/net/ethernet/qlogic/qede/qede_main.c
2219
static int qede_start_queues(struct qede_dev *edev, bool clear_stats)
drivers/net/ethernet/qlogic/qede/qede_main.c
2222
struct qed_dev *cdev = edev->cdev;
drivers/net/ethernet/qlogic/qede/qede_main.c
2223
struct qed_dev_info *qed_info = &edev->dev_info.common;
drivers/net/ethernet/qlogic/qede/qede_main.c
2229
if (!edev->num_queues) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2230
DP_ERR(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2239
start.handle_ptp_pkts = !!(edev->ptp);
drivers/net/ethernet/qlogic/qede/qede_main.c
2240
start.gro_enable = !edev->gro_disable;
drivers/net/ethernet/qlogic/qede/qede_main.c
2241
start.mtu = edev->ndev->mtu;
drivers/net/ethernet/qlogic/qede/qede_main.c
2247
rc = edev->ops->vport_start(cdev, &start);
drivers/net/ethernet/qlogic/qede/qede_main.c
225
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_main.c
2250
DP_ERR(edev, "Start V-PORT failed %d\n", rc);
drivers/net/ethernet/qlogic/qede/qede_main.c
2254
DP_VERBOSE(edev, NETIF_MSG_IFUP,
drivers/net/ethernet/qlogic/qede/qede_main.c
2256
start.vport_id, edev->ndev->mtu + 0xe, vlan_removal_en);
drivers/net/ethernet/qlogic/qede/qede_main.c
2259
struct qede_fastpath *fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
2279
rc = edev->ops->q_rx_start(cdev, i, &q_params,
drivers/net/ethernet/qlogic/qede/qede_main.c
2285
DP_ERR(edev, "Start RXQ #%d failed %d\n", i,
drivers/net/ethernet/qlogic/qede/qede_main.c
2297
qede_update_rx_prod(edev, rxq);
drivers/net/ethernet/qlogic/qede/qede_main.c
2301
rc = qede_start_txq(edev, fp, fp->xdp_tx, i, XDP_PI);
drivers/net/ethernet/qlogic/qede/qede_main.c
2305
bpf_prog_add(edev->xdp_prog, 1);
drivers/net/ethernet/qlogic/qede/qede_main.c
2306
fp->rxq->xdp_prog = edev->xdp_prog;
drivers/net/ethernet/qlogic/qede/qede_main.c
2312
for_each_cos_in_txq(edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2313
rc = qede_start_txq(edev, fp, &fp->txq[cos], i,
drivers/net/ethernet/qlogic/qede/qede_main.c
2326
if ((qed_info->b_inter_pf_switch || pci_num_vf(edev->pdev)) &&
drivers/net/ethernet/qlogic/qede/qede_main.c
2332
qede_fill_rss_params(edev, &vport_update_params->rss_params,
drivers/net/ethernet/qlogic/qede/qede_main.c
2335
rc = edev->ops->vport_update(cdev, vport_update_params);
drivers/net/ethernet/qlogic/qede/qede_main.c
2337
DP_ERR(edev, "Update V-PORT failed %d\n", rc);
drivers/net/ethernet/qlogic/qede/qede_main.c
2349
static void qede_unload(struct qede_dev *edev, enum qede_unload_mode mode,
drivers/net/ethernet/qlogic/qede/qede_main.c
2355
DP_INFO(edev, "Starting qede unload\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2358
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2360
clear_bit(QEDE_FLAGS_LINK_REQUESTED, &edev->flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
2363
edev->state = QEDE_STATE_CLOSED;
drivers/net/ethernet/qlogic/qede/qede_main.c
2365
qede_rdma_dev_event_close(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2368
netif_tx_disable(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2369
netif_carrier_off(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2375
edev->ops->common->set_link(edev->cdev, &link_params);
drivers/net/ethernet/qlogic/qede/qede_main.c
2377
rc = qede_stop_queues(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
238
edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2380
if (edev->dev_info.common.b_arfs_capable) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2381
qede_poll_for_freeing_arfs_filters(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2382
if (edev->ndev->rx_cpu_rmap)
drivers/net/ethernet/qlogic/qede/qede_main.c
2383
free_irq_cpu_rmap(edev->ndev->rx_cpu_rmap);
drivers/net/ethernet/qlogic/qede/qede_main.c
2385
edev->ndev->rx_cpu_rmap = NULL;
drivers/net/ethernet/qlogic/qede/qede_main.c
2388
qede_sync_free_irqs(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2392
DP_INFO(edev, "Stopped Queues\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2395
qede_vlan_mark_nonconfigured(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2396
edev->ops->fastpath_stop(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2398
if (edev->dev_info.common.b_arfs_capable) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2399
qede_poll_for_freeing_arfs_filters(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2400
qede_free_arfs(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2404
qede_sync_free_irqs(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2405
edev->ops->common->set_fp_int(edev->cdev, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
2407
qede_napi_disable_remove(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2410
qede_empty_tx_queues(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2412
qede_free_mem_load(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2413
qede_free_fp_array(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2417
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2420
DP_NOTICE(edev, "Link is down\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2422
edev->ptp_skip_txts = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
2424
DP_INFO(edev, "Ending qede unload\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
243
if (!edev->ops || !edev->ops->common)
drivers/net/ethernet/qlogic/qede/qede_main.c
2433
static int qede_load(struct qede_dev *edev, enum qede_load_mode mode,
drivers/net/ethernet/qlogic/qede/qede_main.c
2441
DP_INFO(edev, "Starting qede load\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2444
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2446
rc = qede_set_num_queues(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
245
edev->ops->common->set_name(edev->cdev, edev->ndev->name);
drivers/net/ethernet/qlogic/qede/qede_main.c
2450
rc = qede_alloc_fp_array(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2454
qede_init_fp(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2456
rc = qede_alloc_mem_load(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2459
DP_INFO(edev, "Allocated %d Rx, %d Tx queues\n",
drivers/net/ethernet/qlogic/qede/qede_main.c
2460
QEDE_RSS_COUNT(edev), QEDE_TSS_COUNT(edev));
drivers/net/ethernet/qlogic/qede/qede_main.c
2462
rc = qede_set_real_num_queues(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2466
if (qede_alloc_arfs(edev)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2467
edev->ndev->features &= ~NETIF_F_NTUPLE;
drivers/net/ethernet/qlogic/qede/qede_main.c
2468
edev->dev_info.common.b_arfs_capable = false;
drivers/net/ethernet/qlogic/qede/qede_main.c
2471
qede_napi_add_enable(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2472
DP_INFO(edev, "Napi added and enabled\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2474
rc = qede_setup_irqs(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2477
DP_INFO(edev, "Setup IRQs succeeded\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2479
rc = qede_start_queues(edev, mode != QEDE_LOAD_RELOAD);
drivers/net/ethernet/qlogic/qede/qede_main.c
248
edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2482
DP_INFO(edev, "Start VPORT, RXQ and TXQ succeeded\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2484
num_tc = netdev_get_num_tc(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2485
num_tc = num_tc ? num_tc : edev->dev_info.num_tc;
drivers/net/ethernet/qlogic/qede/qede_main.c
2486
qede_setup_tc(edev->ndev, num_tc);
drivers/net/ethernet/qlogic/qede/qede_main.c
2489
qede_configure_vlan_filters(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
249
qede_rdma_event_changeaddr(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2491
set_bit(QEDE_FLAGS_LINK_REQUESTED, &edev->flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
2496
edev->ops->common->set_link(edev->cdev, &link_params);
drivers/net/ethernet/qlogic/qede/qede_main.c
2498
edev->state = QEDE_STATE_OPEN;
drivers/net/ethernet/qlogic/qede/qede_main.c
2504
if (edev->coal_entry[i].isvalid) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2505
coal.rx_coalesce_usecs = edev->coal_entry[i].rxc;
drivers/net/ethernet/qlogic/qede/qede_main.c
2506
coal.tx_coalesce_usecs = edev->coal_entry[i].txc;
drivers/net/ethernet/qlogic/qede/qede_main.c
2508
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2509
qede_set_per_coalesce(edev->ndev, i, &coal);
drivers/net/ethernet/qlogic/qede/qede_main.c
2510
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2512
DP_INFO(edev, "Ending successfully qede load\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2516
qede_sync_free_irqs(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2518
qede_napi_disable_remove(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2520
qede_free_mem_load(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2522
edev->ops->common->set_fp_int(edev->cdev, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
2523
qede_free_fp_array(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2524
edev->num_queues = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
2525
edev->fp_num_tx = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
2526
edev->fp_num_rx = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
2529
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2537
void qede_reload(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2541
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2547
if (edev->state == QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2548
qede_unload(edev, QEDE_UNLOAD_NORMAL, true);
drivers/net/ethernet/qlogic/qede/qede_main.c
2550
args->func(edev, args);
drivers/net/ethernet/qlogic/qede/qede_main.c
2551
qede_load(edev, QEDE_LOAD_RELOAD, true);
drivers/net/ethernet/qlogic/qede/qede_main.c
2554
qede_config_rx_mode(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2556
args->func(edev, args);
drivers/net/ethernet/qlogic/qede/qede_main.c
2560
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2566
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2571
edev->ops->common->set_power_state(edev->cdev, PCI_D0);
drivers/net/ethernet/qlogic/qede/qede_main.c
2573
rc = qede_load(edev, QEDE_LOAD_NORMAL, false);
drivers/net/ethernet/qlogic/qede/qede_main.c
2579
edev->ops->common->update_drv_state(edev->cdev, true);
drivers/net/ethernet/qlogic/qede/qede_main.c
2586
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2588
qede_unload(edev, QEDE_UNLOAD_NORMAL, false);
drivers/net/ethernet/qlogic/qede/qede_main.c
2590
if (edev->cdev)
drivers/net/ethernet/qlogic/qede/qede_main.c
2591
edev->ops->common->update_drv_state(edev->cdev, false);
drivers/net/ethernet/qlogic/qede/qede_main.c
2598
struct qede_dev *edev = dev;
drivers/net/ethernet/qlogic/qede/qede_main.c
2600
if (!test_bit(QEDE_FLAGS_LINK_REQUESTED, &edev->flags)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2601
DP_VERBOSE(edev, NETIF_MSG_LINK, "Interface is not ready\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2606
if (!netif_carrier_ok(edev->ndev)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2607
DP_NOTICE(edev, "Link is up\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2608
netif_tx_start_all_queues(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2609
netif_carrier_on(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2610
qede_rdma_dev_event_open(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2613
if (netif_carrier_ok(edev->ndev)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2614
DP_NOTICE(edev, "Link is down\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2615
netif_tx_disable(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2616
netif_carrier_off(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2617
qede_rdma_dev_event_close(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2624
struct qede_dev *edev = dev;
drivers/net/ethernet/qlogic/qede/qede_main.c
2626
if (edev->state == QEDE_STATE_RECOVERY) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2627
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2632
set_bit(QEDE_SP_RECOVERY, &edev->sp_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
2633
schedule_delayed_work(&edev->sp_task, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
2635
DP_INFO(edev, "Scheduled a recovery handler\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2638
static void qede_recovery_failed(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
2640
netdev_err(edev->ndev, "Recovery handling has failed. Power cycle is needed.\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2642
netif_device_detach(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2644
if (edev->cdev)
drivers/net/ethernet/qlogic/qede/qede_main.c
2645
edev->ops->common->set_power_state(edev->cdev, PCI_D3hot);
drivers/net/ethernet/qlogic/qede/qede_main.c
2648
static void qede_recovery_handler(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
2650
u32 curr_state = edev->state;
drivers/net/ethernet/qlogic/qede/qede_main.c
2653
DP_NOTICE(edev, "Starting a recovery process\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2658
edev->state = QEDE_STATE_RECOVERY;
drivers/net/ethernet/qlogic/qede/qede_main.c
2660
edev->ops->common->recovery_prolog(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2663
qede_unload(edev, QEDE_UNLOAD_RECOVERY, true);
drivers/net/ethernet/qlogic/qede/qede_main.c
2665
__qede_remove(edev->pdev, QEDE_REMOVE_RECOVERY);
drivers/net/ethernet/qlogic/qede/qede_main.c
2667
rc = __qede_probe(edev->pdev, edev->dp_module, edev->dp_level,
drivers/net/ethernet/qlogic/qede/qede_main.c
2668
IS_VF(edev), QEDE_PROBE_RECOVERY);
drivers/net/ethernet/qlogic/qede/qede_main.c
2670
edev->cdev = NULL;
drivers/net/ethernet/qlogic/qede/qede_main.c
2675
rc = qede_load(edev, QEDE_LOAD_RECOVERY, true);
drivers/net/ethernet/qlogic/qede/qede_main.c
2679
qede_config_rx_mode(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2680
udp_tunnel_nic_reset_ntf(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2683
edev->state = curr_state;
drivers/net/ethernet/qlogic/qede/qede_main.c
2685
DP_NOTICE(edev, "Recovery handling is done\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2690
qede_recovery_failed(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2693
static void qede_atomic_hw_err_handler(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
2695
struct qed_dev *cdev = edev->cdev;
drivers/net/ethernet/qlogic/qede/qede_main.c
2697
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2699
edev->err_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
2702
WARN_ON(test_bit(QEDE_ERR_WARN, &edev->err_flags));
drivers/net/ethernet/qlogic/qede/qede_main.c
2705
if (test_bit(QEDE_ERR_ATTN_CLR_EN, &edev->err_flags))
drivers/net/ethernet/qlogic/qede/qede_main.c
2706
edev->ops->common->attn_clr_enable(cdev, true);
drivers/net/ethernet/qlogic/qede/qede_main.c
2708
DP_NOTICE(edev, "Generic non-sleepable HW error handling is done\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2711
static void qede_generic_hw_err_handler(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
2713
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2715
edev->err_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
2717
if (edev->devlink) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2718
DP_NOTICE(edev, "Reporting fatal error to devlink\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2719
edev->ops->common->report_fatal_error(edev->devlink, edev->last_err_type);
drivers/net/ethernet/qlogic/qede/qede_main.c
2722
clear_bit(QEDE_ERR_IS_HANDLED, &edev->err_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
2724
DP_NOTICE(edev, "Generic sleepable HW error handling is done\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2727
static void qede_set_hw_err_flags(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2747
DP_NOTICE(edev, "Unexpected HW error [%d]\n", err_type);
drivers/net/ethernet/qlogic/qede/qede_main.c
2751
edev->err_flags |= err_flags;
drivers/net/ethernet/qlogic/qede/qede_main.c
2757
struct qede_dev *edev = dev;
drivers/net/ethernet/qlogic/qede/qede_main.c
2762
if ((test_and_set_bit(QEDE_ERR_IS_HANDLED, &edev->err_flags) ||
drivers/net/ethernet/qlogic/qede/qede_main.c
2763
edev->state == QEDE_STATE_RECOVERY) &&
drivers/net/ethernet/qlogic/qede/qede_main.c
2765
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
2771
DP_NOTICE(edev, "Unknown HW error [%d]\n", err_type);
drivers/net/ethernet/qlogic/qede/qede_main.c
2772
clear_bit(QEDE_ERR_IS_HANDLED, &edev->err_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
2776
edev->last_err_type = err_type;
drivers/net/ethernet/qlogic/qede/qede_main.c
2777
qede_set_hw_err_flags(edev, err_type);
drivers/net/ethernet/qlogic/qede/qede_main.c
2778
qede_atomic_hw_err_handler(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2779
set_bit(QEDE_SP_HW_ERR, &edev->sp_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
2780
schedule_delayed_work(&edev->sp_task, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
2782
DP_INFO(edev, "Scheduled a error handler [err_type %d]\n", err_type);
drivers/net/ethernet/qlogic/qede/qede_main.c
2785
static bool qede_is_txq_full(struct qede_dev *edev, struct qede_tx_queue *txq)
drivers/net/ethernet/qlogic/qede/qede_main.c
2789
netdev_txq = netdev_get_tx_queue(edev->ndev, txq->ndev_txq_id);
drivers/net/ethernet/qlogic/qede/qede_main.c
2798
struct qede_dev *edev = dev;
drivers/net/ethernet/qlogic/qede/qede_main.c
2802
if (edev->ndev->features & NETIF_F_IP_CSUM)
drivers/net/ethernet/qlogic/qede/qede_main.c
2804
if (edev->ndev->features & NETIF_F_TSO)
drivers/net/ethernet/qlogic/qede/qede_main.c
2807
ether_addr_copy(data->mac[0], edev->ndev->dev_addr);
drivers/net/ethernet/qlogic/qede/qede_main.c
2811
netif_addr_lock_bh(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2813
netdev_for_each_uc_addr(ha, edev->ndev) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2819
netif_addr_unlock_bh(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2825
struct qede_dev *edev = dev;
drivers/net/ethernet/qlogic/qede/qede_main.c
2833
etlv->prom_mode = !!(edev->ndev->flags & IFF_PROMISC);
drivers/net/ethernet/qlogic/qede/qede_main.c
2835
etlv->tx_descr_size = QEDE_TSS_COUNT(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2837
etlv->rx_descr_size = QEDE_RSS_COUNT(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2850
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2852
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
2858
if (qede_is_txq_full(edev, txq))
drivers/net/ethernet/qlogic/qede/qede_main.c
2875
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2898
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2900
if (!edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
2903
DP_NOTICE(edev, "IO error detected [%d]\n", state);
drivers/net/ethernet/qlogic/qede/qede_main.c
2905
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2906
if (edev->state == QEDE_STATE_RECOVERY) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2907
DP_NOTICE(edev, "Device already in the recovery state\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
2908
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2913
if (IS_VF(edev)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
2914
DP_VERBOSE(edev, QED_MSG_IOV,
drivers/net/ethernet/qlogic/qede/qede_main.c
2916
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2921
netif_tx_disable(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2922
netif_carrier_off(edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
2924
set_bit(QEDE_SP_AER, &edev->sp_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
2925
schedule_delayed_work(&edev->sp_task, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
2927
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
313
void qede_fill_by_demand_stats(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
315
struct qede_stats_common *p_common = &edev->stats.common;
drivers/net/ethernet/qlogic/qede/qede_main.c
318
edev->ops->get_vport_stats(edev->cdev, &stats);
drivers/net/ethernet/qlogic/qede/qede_main.c
320
spin_lock(&edev->stats_lock);
drivers/net/ethernet/qlogic/qede/qede_main.c
386
p_common->ptp_skip_txts = edev->ptp_skip_txts;
drivers/net/ethernet/qlogic/qede/qede_main.c
388
if (QEDE_IS_BB(edev)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
389
struct qede_stats_bb *p_bb = &edev->stats.bb;
drivers/net/ethernet/qlogic/qede/qede_main.c
412
struct qede_stats_ah *p_ah = &edev->stats.ah;
drivers/net/ethernet/qlogic/qede/qede_main.c
420
spin_unlock(&edev->stats_lock);
drivers/net/ethernet/qlogic/qede/qede_main.c
426
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_main.c
429
p_common = &edev->stats.common;
drivers/net/ethernet/qlogic/qede/qede_main.c
431
spin_lock(&edev->stats_lock);
drivers/net/ethernet/qlogic/qede/qede_main.c
448
if (QEDE_IS_BB(edev))
drivers/net/ethernet/qlogic/qede/qede_main.c
449
stats->collisions = edev->stats.bb.tx_total_collisions;
drivers/net/ethernet/qlogic/qede/qede_main.c
453
spin_unlock(&edev->stats_lock);
drivers/net/ethernet/qlogic/qede/qede_main.c
460
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_main.c
462
if (!edev->ops)
drivers/net/ethernet/qlogic/qede/qede_main.c
465
return edev->ops->iov->get_config(edev->cdev, vfidx, ivi);
drivers/net/ethernet/qlogic/qede/qede_main.c
471
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_main.c
473
return edev->ops->iov->set_rate(edev->cdev, vfidx, min_tx_rate,
drivers/net/ethernet/qlogic/qede/qede_main.c
479
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_main.c
481
if (!edev->ops)
drivers/net/ethernet/qlogic/qede/qede_main.c
484
return edev->ops->iov->set_spoof(edev->cdev, vfidx, val);
drivers/net/ethernet/qlogic/qede/qede_main.c
490
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_main.c
492
if (!edev->ops)
drivers/net/ethernet/qlogic/qede/qede_main.c
495
return edev->ops->iov->set_link_state(edev->cdev, vfidx, link_state);
drivers/net/ethernet/qlogic/qede/qede_main.c
500
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_main.c
502
if (!edev->ops)
drivers/net/ethernet/qlogic/qede/qede_main.c
505
return edev->ops->iov->set_trust(edev->cdev, vfidx, setting);
drivers/net/ethernet/qlogic/qede/qede_main.c
509
static void qede_fp_sb_dump(struct qede_dev *edev, struct qede_fastpath *fp)
drivers/net/ethernet/qlogic/qede/qede_main.c
517
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
524
qede_txq_fp_log_metadata(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
530
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
536
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
543
qede_tx_log_print(struct qede_dev *edev, struct qede_fastpath *fp, struct qede_tx_queue *txq)
drivers/net/ethernet/qlogic/qede/qede_main.c
549
qede_fp_sb_dump(edev, fp);
drivers/net/ethernet/qlogic/qede/qede_main.c
552
rc = edev->ops->common->get_sb_info(edev->cdev, fp->sb_info, (u16)fp->id, &sb_dbg);
drivers/net/ethernet/qlogic/qede/qede_main.c
554
DP_NOTICE(edev, "IGU: prod %08x cons %08x CAU Tx %04x\n",
drivers/net/ethernet/qlogic/qede/qede_main.c
558
edev->ops->common->mfw_report(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_main.c
564
edev->ops->common->mfw_report(edev->cdev,
drivers/net/ethernet/qlogic/qede/qede_main.c
573
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_main.c
577
DP_NOTICE(edev, "TX timeout on queue %u!\n", txqueue);
drivers/net/ethernet/qlogic/qede/qede_main.c
584
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
588
for_each_cos_in_txq(edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_main.c
592
qede_txq_fp_log_metadata(edev, fp, txq);
drivers/net/ethernet/qlogic/qede/qede_main.c
596
qede_tx_log_print(edev, fp, txq);
drivers/net/ethernet/qlogic/qede/qede_main.c
600
if (IS_VF(edev))
drivers/net/ethernet/qlogic/qede/qede_main.c
603
if (test_and_set_bit(QEDE_ERR_IS_HANDLED, &edev->err_flags) ||
drivers/net/ethernet/qlogic/qede/qede_main.c
604
edev->state == QEDE_STATE_RECOVERY) {
drivers/net/ethernet/qlogic/qede/qede_main.c
605
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_main.c
610
set_bit(QEDE_ERR_GET_DBG_INFO, &edev->err_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
611
set_bit(QEDE_SP_HW_ERR, &edev->sp_flags);
drivers/net/ethernet/qlogic/qede/qede_main.c
612
schedule_delayed_work(&edev->sp_task, 0);
drivers/net/ethernet/qlogic/qede/qede_main.c
617
struct qede_dev *edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
620
if (num_tc > edev->dev_info.num_tc)
drivers/net/ethernet/qlogic/qede/qede_main.c
626
for_each_cos_in_txq(edev, cos) {
drivers/net/ethernet/qlogic/qede/qede_main.c
627
count = QEDE_TSS_COUNT(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
628
offset = cos * QEDE_TSS_COUNT(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
636
qede_set_flower(struct qede_dev *edev, struct flow_cls_offload *f,
drivers/net/ethernet/qlogic/qede/qede_main.c
641
return qede_add_tc_flower_fltr(edev, proto, f);
drivers/net/ethernet/qlogic/qede/qede_main.c
643
return qede_delete_flow_filter(edev, f->cookie);
drivers/net/ethernet/qlogic/qede/qede_main.c
653
struct qede_dev *edev = cb_priv;
drivers/net/ethernet/qlogic/qede/qede_main.c
655
if (!tc_cls_can_offload_and_chain0(edev->ndev, type_data))
drivers/net/ethernet/qlogic/qede/qede_main.c
661
return qede_set_flower(edev, f, f->common.protocol);
drivers/net/ethernet/qlogic/qede/qede_main.c
673
struct qede_dev *edev = netdev_priv(dev);
drivers/net/ethernet/qlogic/qede/qede_main.c
681
edev, edev, true);
drivers/net/ethernet/qlogic/qede/qede_main.c
776
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_main.c
778
ndev = alloc_etherdev_mqs(sizeof(*edev),
drivers/net/ethernet/qlogic/qede/qede_main.c
786
edev = netdev_priv(ndev);
drivers/net/ethernet/qlogic/qede/qede_main.c
787
edev->ndev = ndev;
drivers/net/ethernet/qlogic/qede/qede_main.c
788
edev->cdev = cdev;
drivers/net/ethernet/qlogic/qede/qede_main.c
789
edev->pdev = pdev;
drivers/net/ethernet/qlogic/qede/qede_main.c
790
edev->dp_module = dp_module;
drivers/net/ethernet/qlogic/qede/qede_main.c
791
edev->dp_level = dp_level;
drivers/net/ethernet/qlogic/qede/qede_main.c
792
edev->ops = qed_ops;
drivers/net/ethernet/qlogic/qede/qede_main.c
795
edev->q_num_rx_buffers = NUM_RX_BDS_KDUMP_MIN;
drivers/net/ethernet/qlogic/qede/qede_main.c
796
edev->q_num_tx_buffers = NUM_TX_BDS_KDUMP_MIN;
drivers/net/ethernet/qlogic/qede/qede_main.c
798
edev->q_num_rx_buffers = NUM_RX_BDS_DEF;
drivers/net/ethernet/qlogic/qede/qede_main.c
799
edev->q_num_tx_buffers = NUM_TX_BDS_DEF;
drivers/net/ethernet/qlogic/qede/qede_main.c
802
DP_INFO(edev, "Allocated netdev with %d tx queues and %d rx queues\n",
drivers/net/ethernet/qlogic/qede/qede_main.c
807
memset(&edev->stats, 0, sizeof(edev->stats));
drivers/net/ethernet/qlogic/qede/qede_main.c
808
memcpy(&edev->dev_info, info, sizeof(*info));
drivers/net/ethernet/qlogic/qede/qede_main.c
813
if (edev->dev_info.common.wol_support)
drivers/net/ethernet/qlogic/qede/qede_main.c
814
edev->wol_enabled = true;
drivers/net/ethernet/qlogic/qede/qede_main.c
816
INIT_LIST_HEAD(&edev->vlan_list);
drivers/net/ethernet/qlogic/qede/qede_main.c
818
return edev;
drivers/net/ethernet/qlogic/qede/qede_main.c
821
static void qede_init_ndev(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
823
struct net_device *ndev = edev->ndev;
drivers/net/ethernet/qlogic/qede/qede_main.c
824
struct pci_dev *pdev = edev->pdev;
drivers/net/ethernet/qlogic/qede/qede_main.c
830
ndev->mem_start = edev->dev_info.common.pci_mem_start;
drivers/net/ethernet/qlogic/qede/qede_main.c
832
ndev->mem_end = edev->dev_info.common.pci_mem_end;
drivers/net/ethernet/qlogic/qede/qede_main.c
833
ndev->irq = edev->dev_info.common.pci_irq;
drivers/net/ethernet/qlogic/qede/qede_main.c
837
if (IS_VF(edev)) {
drivers/net/ethernet/qlogic/qede/qede_main.c
838
if (edev->dev_info.xdp_supported)
drivers/net/ethernet/qlogic/qede/qede_main.c
855
if (edev->dev_info.common.b_arfs_capable)
drivers/net/ethernet/qlogic/qede/qede_main.c
858
if (edev->dev_info.common.vxlan_enable ||
drivers/net/ethernet/qlogic/qede/qede_main.c
859
edev->dev_info.common.geneve_enable)
drivers/net/ethernet/qlogic/qede/qede_main.c
862
if (udp_tunnel_enable || edev->dev_info.common.gre_enable) {
drivers/net/ethernet/qlogic/qede/qede_main.c
876
qede_set_udp_tunnels(edev);
drivers/net/ethernet/qlogic/qede/qede_main.c
879
if (edev->dev_info.common.gre_enable) {
drivers/net/ethernet/qlogic/qede/qede_main.c
901
eth_hw_addr_set(edev->ndev, edev->dev_info.common.hw_mac);
drivers/net/ethernet/qlogic/qede/qede_main.c
903
ndev->mtu = edev->dev_info.common.mtu;
drivers/net/ethernet/qlogic/qede/qede_main.c
932
static void qede_free_fp_array(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
934
if (edev->fp_array) {
drivers/net/ethernet/qlogic/qede/qede_main.c
939
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
952
kfree(edev->fp_array);
drivers/net/ethernet/qlogic/qede/qede_main.c
955
edev->num_queues = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
956
edev->fp_num_tx = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
957
edev->fp_num_rx = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
960
static int qede_alloc_fp_array(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_main.c
962
u8 fp_combined, fp_rx = edev->fp_num_rx;
drivers/net/ethernet/qlogic/qede/qede_main.c
966
edev->fp_array = kzalloc_objs(*edev->fp_array, QEDE_QUEUE_CNT(edev));
drivers/net/ethernet/qlogic/qede/qede_main.c
967
if (!edev->fp_array) {
drivers/net/ethernet/qlogic/qede/qede_main.c
968
DP_NOTICE(edev, "fp array allocation failed\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
972
if (!edev->coal_entry) {
drivers/net/ethernet/qlogic/qede/qede_main.c
973
edev->coal_entry = kzalloc_objs(*edev->coal_entry,
drivers/net/ethernet/qlogic/qede/qede_main.c
974
QEDE_MAX_RSS_CNT(edev));
drivers/net/ethernet/qlogic/qede/qede_main.c
975
if (!edev->coal_entry) {
drivers/net/ethernet/qlogic/qede/qede_main.c
976
DP_ERR(edev, "coalesce entry allocation failed\n");
drivers/net/ethernet/qlogic/qede/qede_main.c
981
fp_combined = QEDE_QUEUE_CNT(edev) - fp_rx - edev->fp_num_tx;
drivers/net/ethernet/qlogic/qede/qede_main.c
989
fp = &edev->fp_array[i];
drivers/net/ethernet/qlogic/qede/qede_main.c
993
DP_NOTICE(edev, "sb info struct allocation failed\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
102
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
107
edev = ptp->edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
111
DP_VERBOSE(edev, QED_MSG_DEBUG, "PTP settime called, ns = %llu\n", ns);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
126
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
130
edev = ptp->edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
132
DP_ERR(edev, "PHC ancillary features are not supported\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
140
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
147
edev = ptp->edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
153
rc = ptp->ops->read_tx_ts(edev->cdev, ×tamp);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
157
DP_INFO(edev, "Tx timestamp is not recorded\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
161
&edev->flags);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
162
edev->ptp_skip_txts++;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
176
clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
178
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ptp.c
18
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
186
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
192
edev = ptp->edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
193
rc = ptp->ops->read_cc(edev->cdev, &phc_cycles);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
197
DP_VERBOSE(edev, QED_MSG_DEBUG, "PHC read cycles = %llu\n", phc_cycles);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
202
static void qede_ptp_cfg_filters(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_ptp.c
206
struct qede_ptp *ptp = edev->ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
209
DP_INFO(edev, "TS IOCTL not called\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
215
set_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
220
clear_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
278
ptp->ops->cfg_filters(edev->cdev, rx_filter, tx_type);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
287
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
295
ptp = edev->ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
301
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ptp.c
319
qede_ptp_cfg_filters(edev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
329
struct qede_dev *edev = netdev_priv(netdev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
332
ptp = edev->ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
342
int qede_ptp_get_ts_info(struct qede_dev *edev, struct kernel_ethtool_ts_info *info)
drivers/net/ethernet/qlogic/qede/qede_ptp.c
344
struct qede_ptp *ptp = edev->ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
379
void qede_ptp_disable(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_ptp.c
383
ptp = edev->ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
399
clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
404
ptp->ops->disable(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
408
edev->ptp = NULL;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
411
static int qede_ptp_init(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_ptp.c
416
ptp = edev->ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
423
rc = ptp->ops->enable(edev->cdev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
425
DP_INFO(edev, "PTP HW enable failed\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
44
struct qede_dev *edev = ptp->edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
444
int qede_ptp_enable(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_ptp.c
451
DP_INFO(edev, "Failed to allocate struct for PTP\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
455
ptp->edev = edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
456
ptp->ops = edev->ops->ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
458
DP_INFO(edev, "PTP enable failed\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
463
edev->ptp = ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
465
rc = qede_ptp_init(edev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
469
qede_ptp_cfg_filters(edev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
47
__qede_lock(edev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
473
snprintf(ptp->clock_info.name, 16, "%s", edev->ndev->name);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
48
if (edev->state == QEDE_STATE_OPEN) {
drivers/net/ethernet/qlogic/qede/qede_ptp.c
485
ptp->clock = ptp_clock_register(&ptp->clock_info, &edev->pdev->dev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
487
DP_ERR(edev, "PTP clock registration failed\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
488
qede_ptp_disable(edev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
498
edev->ptp = NULL;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
50
rc = ptp->ops->adjfreq(edev->cdev, ppb);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
503
void qede_ptp_tx_ts(struct qede_dev *edev, struct sk_buff *skb)
drivers/net/ethernet/qlogic/qede/qede_ptp.c
507
ptp = edev->ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
512
&edev->flags)) {
drivers/net/ethernet/qlogic/qede/qede_ptp.c
513
DP_VERBOSE(edev, QED_MSG_DEBUG, "Timestamping in progress\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
514
edev->ptp_skip_txts++;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
518
if (unlikely(!test_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags))) {
drivers/net/ethernet/qlogic/qede/qede_ptp.c
519
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ptp.c
521
clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
522
edev->ptp_skip_txts++;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
524
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ptp.c
526
clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
527
edev->ptp_skip_txts++;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
53
DP_ERR(edev, "PTP adjfine called while interface is down\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
537
void qede_ptp_rx_ts(struct qede_dev *edev, struct sk_buff *skb)
drivers/net/ethernet/qlogic/qede/qede_ptp.c
543
ptp = edev->ptp;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
548
rc = ptp->ops->read_rx_ts(edev->cdev, ×tamp);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
551
DP_INFO(edev, "Invalid Rx timestamp\n");
drivers/net/ethernet/qlogic/qede/qede_ptp.c
558
DP_VERBOSE(edev, QED_MSG_DEBUG,
drivers/net/ethernet/qlogic/qede/qede_ptp.c
56
__qede_unlock(edev);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
63
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
67
edev = ptp->edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
69
DP_VERBOSE(edev, QED_MSG_DEBUG, "PTP adjtime called, delta = %llx\n",
drivers/net/ethernet/qlogic/qede/qede_ptp.c
81
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
86
edev = ptp->edev;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
92
DP_VERBOSE(edev, QED_MSG_DEBUG, "PTP gettime called, ns = %llu\n", ns);
drivers/net/ethernet/qlogic/qede/qede_ptp.h
15
void qede_ptp_rx_ts(struct qede_dev *edev, struct sk_buff *skb);
drivers/net/ethernet/qlogic/qede/qede_ptp.h
16
void qede_ptp_tx_ts(struct qede_dev *edev, struct sk_buff *skb);
drivers/net/ethernet/qlogic/qede/qede_ptp.h
22
void qede_ptp_disable(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede_ptp.h
23
int qede_ptp_enable(struct qede_dev *edev);
drivers/net/ethernet/qlogic/qede/qede_ptp.h
24
int qede_ptp_get_ts_info(struct qede_dev *edev, struct kernel_ethtool_ts_info *ts);
drivers/net/ethernet/qlogic/qede/qede_ptp.h
26
static inline void qede_ptp_record_rx_ts(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_ptp.h
35
qede_ptp_rx_ts(edev, skb);
drivers/net/ethernet/qlogic/qede/qede_ptp.h
37
DP_INFO(edev,
drivers/net/ethernet/qlogic/qede/qede_rdma.c
101
INIT_LIST_HEAD(&edev->rdma_info.entry);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
103
list_add_tail(&edev->rdma_info.entry, &qedr_dev_list);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
104
_qede_rdma_dev_add(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
110
static void _qede_rdma_dev_remove(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
112
if (qedr_drv && qedr_drv->remove && edev->rdma_info.qedr_dev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
113
qedr_drv->remove(edev->rdma_info.qedr_dev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
116
void qede_rdma_dev_remove(struct qede_dev *edev, bool recovery)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
118
if (!qede_rdma_supported(edev))
drivers/net/ethernet/qlogic/qede/qede_rdma.c
123
qede_rdma_destroy_wq(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
125
if (!edev->rdma_info.exp_recovery)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
126
_qede_rdma_dev_remove(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
127
edev->rdma_info.qedr_dev = NULL;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
128
list_del(&edev->rdma_info.entry);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
131
if (!edev->rdma_info.exp_recovery) {
drivers/net/ethernet/qlogic/qede/qede_rdma.c
133
_qede_rdma_dev_remove(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
136
edev->rdma_info.exp_recovery = true;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
140
static void _qede_rdma_dev_open(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
142
if (qedr_drv && edev->rdma_info.qedr_dev && qedr_drv->notify)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
143
qedr_drv->notify(edev->rdma_info.qedr_dev, QEDE_UP);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
146
static void qede_rdma_dev_open(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
148
if (!qede_rdma_supported(edev))
drivers/net/ethernet/qlogic/qede/qede_rdma.c
152
_qede_rdma_dev_open(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
156
static void _qede_rdma_dev_close(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
158
if (qedr_drv && edev->rdma_info.qedr_dev && qedr_drv->notify)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
159
qedr_drv->notify(edev->rdma_info.qedr_dev, QEDE_DOWN);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
162
static void qede_rdma_dev_close(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
164
if (!qede_rdma_supported(edev))
drivers/net/ethernet/qlogic/qede/qede_rdma.c
168
_qede_rdma_dev_close(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
172
static void qede_rdma_dev_shutdown(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
174
if (!qede_rdma_supported(edev))
drivers/net/ethernet/qlogic/qede/qede_rdma.c
178
if (qedr_drv && edev->rdma_info.qedr_dev && qedr_drv->notify)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
179
qedr_drv->notify(edev->rdma_info.qedr_dev, QEDE_CLOSE);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
185
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
195
list_for_each_entry(edev, &qedr_dev_list, rdma_info.entry) {
drivers/net/ethernet/qlogic/qede/qede_rdma.c
199
_qede_rdma_dev_add(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
200
ndev = edev->ndev;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
202
_qede_rdma_dev_open(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
215
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
218
list_for_each_entry(edev, &qedr_dev_list, rdma_info.entry) {
drivers/net/ethernet/qlogic/qede/qede_rdma.c
220
if (edev->rdma_info.qedr_dev && !edev->rdma_info.exp_recovery)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
221
_qede_rdma_dev_remove(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
228
static void qede_rdma_changeaddr(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
23
static void _qede_rdma_dev_add(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
230
if (!qede_rdma_supported(edev))
drivers/net/ethernet/qlogic/qede/qede_rdma.c
233
if (qedr_drv && edev->rdma_info.qedr_dev && qedr_drv->notify)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
234
qedr_drv->notify(edev->rdma_info.qedr_dev, QEDE_CHANGE_ADDR);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
237
static void qede_rdma_change_mtu(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
239
if (qede_rdma_supported(edev)) {
drivers/net/ethernet/qlogic/qede/qede_rdma.c
240
if (qedr_drv && edev->rdma_info.qedr_dev && qedr_drv->notify)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
241
qedr_drv->notify(edev->rdma_info.qedr_dev,
drivers/net/ethernet/qlogic/qede/qede_rdma.c
247
qede_rdma_get_free_event_node(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
252
list_for_each_entry(event_node, &edev->rdma_info.rdma_event_list,
drivers/net/ethernet/qlogic/qede/qede_rdma.c
263
DP_NOTICE(edev,
drivers/net/ethernet/qlogic/qede/qede_rdma.c
268
&edev->rdma_info.rdma_event_list);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
278
struct qede_dev *edev;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
282
edev = event_node->ptr;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
286
qede_rdma_dev_open(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
289
qede_rdma_dev_close(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
29
edev->rdma_info.exp_recovery = false;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
292
qede_rdma_dev_shutdown(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
295
qede_rdma_changeaddr(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
298
qede_rdma_change_mtu(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
30
edev->rdma_info.qedr_dev = qedr_drv->add(edev->cdev, edev->pdev,
drivers/net/ethernet/qlogic/qede/qede_rdma.c
301
DP_NOTICE(edev, "Invalid rdma event %d", event);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
305
static void qede_rdma_add_event(struct qede_dev *edev,
drivers/net/ethernet/qlogic/qede/qede_rdma.c
31
edev->ndev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
311
if (edev->rdma_info.exp_recovery)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
314
if (!edev->rdma_info.qedr_dev || !edev->rdma_info.rdma_wq)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
320
if (!kref_get_unless_zero(&edev->rdma_info.refcnt))
drivers/net/ethernet/qlogic/qede/qede_rdma.c
323
event_node = qede_rdma_get_free_event_node(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
328
event_node->ptr = edev;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
331
queue_work(edev->rdma_info.rdma_wq, &event_node->work);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
334
kref_put(&edev->rdma_info.refcnt, qede_rdma_complete_event);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
337
void qede_rdma_dev_event_open(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
339
qede_rdma_add_event(edev, QEDE_UP);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
34
static int qede_rdma_create_wq(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
342
void qede_rdma_dev_event_close(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
344
qede_rdma_add_event(edev, QEDE_DOWN);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
347
void qede_rdma_event_changeaddr(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
349
qede_rdma_add_event(edev, QEDE_CHANGE_ADDR);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
352
void qede_rdma_event_change_mtu(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
354
qede_rdma_add_event(edev, QEDE_CHANGE_MTU);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
36
INIT_LIST_HEAD(&edev->rdma_info.rdma_event_list);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
37
kref_init(&edev->rdma_info.refcnt);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
38
init_completion(&edev->rdma_info.event_comp);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
40
edev->rdma_info.rdma_wq = create_singlethread_workqueue("rdma_wq");
drivers/net/ethernet/qlogic/qede/qede_rdma.c
41
if (!edev->rdma_info.rdma_wq) {
drivers/net/ethernet/qlogic/qede/qede_rdma.c
42
DP_NOTICE(edev, "qedr: Could not create workqueue\n");
drivers/net/ethernet/qlogic/qede/qede_rdma.c
49
static void qede_rdma_cleanup_event(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
51
struct list_head *head = &edev->rdma_info.rdma_event_list;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
54
flush_workqueue(edev->rdma_info.rdma_wq);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
73
static void qede_rdma_destroy_wq(struct qede_dev *edev)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
78
kref_put(&edev->rdma_info.refcnt, qede_rdma_complete_event);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
79
wait_for_completion(&edev->rdma_info.event_comp);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
81
qede_rdma_cleanup_event(edev);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
82
destroy_workqueue(edev->rdma_info.rdma_wq);
drivers/net/ethernet/qlogic/qede/qede_rdma.c
83
edev->rdma_info.rdma_wq = NULL;
drivers/net/ethernet/qlogic/qede/qede_rdma.c
86
int qede_rdma_dev_add(struct qede_dev *edev, bool recovery)
drivers/net/ethernet/qlogic/qede/qede_rdma.c
90
if (!qede_rdma_supported(edev))
drivers/net/ethernet/qlogic/qede/qede_rdma.c
97
rc = qede_rdma_create_wq(edev);
drivers/net/hamradio/bpqether.c
461
static int bpq_new_device(struct net_device *edev)
drivers/net/hamradio/bpqether.c
474
dev_hold(edev);
drivers/net/hamradio/bpqether.c
475
bpq->ethdev = edev;
drivers/net/hamradio/bpqether.c
490
dev_put(edev);
drivers/pci/hotplug/pnv_php.c
1017
edev = pchild ? pci_dev_to_eeh_dev(pchild) : NULL;
drivers/pci/hotplug/pnv_php.c
1018
pe = edev ? edev->pe : NULL;
drivers/pci/hotplug/pnv_php.c
915
struct eeh_dev *edev;
drivers/pci/hotplug/pnv_php.c
927
edev = pci_dev_to_eeh_dev(pdev);
drivers/pci/hotplug/pnv_php.c
928
pe = edev ? edev->pe : NULL;
drivers/pci/hotplug/pnv_php.c
976
struct eeh_dev *edev;
drivers/pci/hotplug/rpaphp_pci.c
92
pe = eeh_dev_to_pe(pdn->edev);
drivers/pci/pcie/aer_inject.c
324
struct pcie_device *edev;
drivers/pci/pcie/aer_inject.c
466
edev = to_pcie_device(device);
drivers/pci/pcie/aer_inject.c
467
if (!get_service_data(edev)) {
drivers/pci/pcie/aer_inject.c
468
pci_warn(edev->port, "AER service is not initialized\n");
drivers/pci/pcie/aer_inject.c
472
pci_info(edev->port, "Injecting errors %08x/%08x into device %s\n",
drivers/pci/pcie/aer_inject.c
474
ret = irq_inject_interrupt(edev->irq);
drivers/pci/pcie/edr.c
132
static int acpi_send_edr_status(struct pci_dev *pdev, struct pci_dev *edev,
drivers/pci/pcie/edr.c
138
pci_dbg(pdev, "Status for %s: %#x\n", pci_name(edev), status);
drivers/pci/pcie/edr.c
140
ost_status = PCI_DEVID(edev->bus->number, edev->devfn) << 16;
drivers/pci/pcie/edr.c
153
struct pci_dev *pdev = data, *edev;
drivers/pci/pcie/edr.c
172
edev = acpi_dpc_port_get(pdev);
drivers/pci/pcie/edr.c
173
if (!edev) {
drivers/pci/pcie/edr.c
178
pci_dbg(pdev, "Reported EDR dev: %s\n", pci_name(edev));
drivers/pci/pcie/edr.c
181
if (!edev->dpc_cap) {
drivers/pci/pcie/edr.c
182
pci_err(edev, FW_BUG "This device doesn't support DPC\n");
drivers/pci/pcie/edr.c
187
pci_read_config_word(edev, edev->dpc_cap + PCI_EXP_DPC_STATUS, &status);
drivers/pci/pcie/edr.c
189
pci_err(edev, "Invalid DPC trigger %#010x\n", status);
drivers/pci/pcie/edr.c
193
dpc_process_error(edev);
drivers/pci/pcie/edr.c
194
pci_aer_raw_clear_status(edev);
drivers/pci/pcie/edr.c
201
estate = pcie_do_recovery(edev, pci_channel_io_frozen, dpc_reset_link);
drivers/pci/pcie/edr.c
210
pci_dbg(edev, "DPC port successfully recovered\n");
drivers/pci/pcie/edr.c
211
pcie_clear_device_status(edev);
drivers/pci/pcie/edr.c
212
acpi_send_edr_status(pdev, edev, EDR_OST_SUCCESS);
drivers/pci/pcie/edr.c
214
pci_dbg(edev, "DPC port recovery failed\n");
drivers/pci/pcie/edr.c
215
acpi_send_edr_status(pdev, edev, EDR_OST_FAILED);
drivers/pci/pcie/edr.c
218
pci_dev_put(edev);
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c
241
extcon_set_state_sync(driver->edev, EXTCON_USB_HOST, true);
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c
246
extcon_set_state_sync(driver->edev, EXTCON_USB_HOST, false);
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c
247
extcon_set_state_sync(driver->edev, EXTCON_USB, false);
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c
250
extcon_set_state_sync(driver->edev, EXTCON_USB, true);
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c
327
driver->edev = devm_extcon_dev_allocate(dev, usb_extcon_cable);
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c
328
if (IS_ERR(driver->edev)) {
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c
333
ret = devm_extcon_dev_register(dev, driver->edev);
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c
57
struct extcon_dev *edev;
drivers/phy/phy-lgm-usb.c
150
connected = extcon_get_state(ta->phy.edev, EXTCON_USB_HOST);
drivers/phy/phy-lgm-usb.c
56
ret = extcon_get_property(ta->phy.edev, EXTCON_USB_HOST,
drivers/phy/phy-lgm-usb.c
89
if (!ta->phy.edev) {
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
1083
extcon_set_state_sync(rphy->edev, EXTCON_USB_HOST, !id);
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
1320
if (!IS_ERR(rphy->edev)) {
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
1323
ret = devm_extcon_register_notifier(rphy->dev, rphy->edev,
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
1333
extcon_set_state_sync(rphy->edev, EXTCON_USB_HOST, !id);
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
258
struct extcon_dev *edev;
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
440
struct extcon_dev *edev;
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
444
edev = extcon_get_edev_by_phandle(rphy->dev, 0);
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
445
if (IS_ERR(edev))
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
446
return dev_err_probe(rphy->dev, PTR_ERR(edev),
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
450
edev = devm_extcon_dev_allocate(rphy->dev,
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
453
if (IS_ERR(edev))
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
454
return dev_err_probe(rphy->dev, PTR_ERR(edev),
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
457
ret = devm_extcon_dev_register(rphy->dev, edev);
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
463
rphy->edev = edev;
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
685
if (extcon_get_state(rphy->edev, EXTCON_USB_HOST) > 0) {
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
737
if (notify_charger && rphy->edev) {
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
738
extcon_set_state_sync(rphy->edev,
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
741
extcon_set_state_sync(rphy->edev,
drivers/phy/rockchip/phy-rockchip-inno-usb2.c
759
if (extcon_get_state(rphy->edev, EXTCON_USB_HOST) == 0) {
drivers/phy/rockchip/phy-rockchip-typec.c
808
struct extcon_dev *edev = tcphy->extcon;
drivers/phy/rockchip/phy-rockchip-typec.c
814
if (!edev)
drivers/phy/rockchip/phy-rockchip-typec.c
817
ufp = extcon_get_state(edev, EXTCON_USB);
drivers/phy/rockchip/phy-rockchip-typec.c
818
dp = extcon_get_state(edev, EXTCON_DISP_DP);
drivers/phy/rockchip/phy-rockchip-typec.c
830
ret = extcon_get_property(edev, id, EXTCON_PROP_USB_SS,
drivers/phy/rockchip/phy-rockchip-typec.c
841
ret = extcon_get_property(edev, id, EXTCON_PROP_USB_TYPEC_POLARITY,
drivers/power/supply/axp288_charger.c
136
struct extcon_dev *edev;
drivers/power/supply/axp288_charger.c
622
struct extcon_dev *edev = info->cable.edev;
drivers/power/supply/axp288_charger.c
647
} else if (extcon_get_state(edev, EXTCON_CHG_USB_SDP) > 0) {
drivers/power/supply/axp288_charger.c
650
} else if (extcon_get_state(edev, EXTCON_CHG_USB_CDP) > 0) {
drivers/power/supply/axp288_charger.c
653
} else if (extcon_get_state(edev, EXTCON_CHG_USB_DCP) > 0) {
drivers/power/supply/axp288_charger.c
688
struct extcon_dev *edev = info->otg.cable;
drivers/power/supply/axp288_charger.c
689
int ret, usb_host = extcon_get_state(edev, EXTCON_USB_HOST);
drivers/power/supply/axp288_charger.c
868
info->cable.edev = extcon_get_extcon_dev(AXP288_EXTCON_DEV_NAME);
drivers/power/supply/axp288_charger.c
869
if (IS_ERR(info->cable.edev)) {
drivers/power/supply/axp288_charger.c
870
dev_err_probe(dev, PTR_ERR(info->cable.edev),
drivers/power/supply/axp288_charger.c
873
return PTR_ERR(info->cable.edev);
drivers/power/supply/axp288_charger.c
921
ret = devm_extcon_register_notifier_all(dev, info->cable.edev,
drivers/power/supply/bq24190_charger.c
1754
ret = extcon_set_state_sync(bdi->edev, EXTCON_USB, otg_enabled);
drivers/power/supply/bq24190_charger.c
2100
bdi->edev = devm_extcon_dev_allocate(dev, bq24190_usb_extcon_cable);
drivers/power/supply/bq24190_charger.c
2101
if (IS_ERR(bdi->edev))
drivers/power/supply/bq24190_charger.c
2102
return PTR_ERR(bdi->edev);
drivers/power/supply/bq24190_charger.c
2104
ret = devm_extcon_dev_register(dev, bdi->edev);
drivers/power/supply/bq24190_charger.c
226
struct extcon_dev *edev;
drivers/power/supply/max8971_charger.c
108
struct extcon_dev *edev;
drivers/power/supply/max8971_charger.c
550
struct extcon_dev *edev = priv->edev;
drivers/power/supply/max8971_charger.c
553
if (extcon_get_state(edev, EXTCON_CHG_USB_SDP) > 0) {
drivers/power/supply/max8971_charger.c
558
} else if (extcon_get_state(edev, EXTCON_USB) > 0) {
drivers/power/supply/max8971_charger.c
563
} else if (extcon_get_state(edev, EXTCON_DISP_MHL) > 0) {
drivers/power/supply/max8971_charger.c
568
} else if (extcon_get_state(edev, EXTCON_CHG_USB_DCP) > 0) {
drivers/power/supply/max8971_charger.c
573
} else if (extcon_get_state(edev, EXTCON_CHG_USB_FAST) > 0) {
drivers/power/supply/max8971_charger.c
578
} else if (extcon_get_state(edev, EXTCON_CHG_USB_SLOW) > 0) {
drivers/power/supply/max8971_charger.c
583
} else if (extcon_get_state(edev, EXTCON_CHG_USB_CDP) > 0) {
drivers/power/supply/max8971_charger.c
693
priv->edev = extcon_find_edev_by_node(extcon);
drivers/power/supply/max8971_charger.c
695
if (IS_ERR(priv->edev))
drivers/power/supply/max8971_charger.c
696
return dev_err_probe(dev, PTR_ERR(priv->edev), "failed to find extcon\n");
drivers/power/supply/max8971_charger.c
705
err = devm_extcon_register_notifier_all(dev, priv->edev, &priv->extcon_nb);
drivers/power/supply/max8997_charger.c
102
struct extcon_dev *edev = charger->edev;
drivers/power/supply/max8997_charger.c
105
if (extcon_get_state(edev, EXTCON_CHG_USB_SDP) > 0) {
drivers/power/supply/max8997_charger.c
108
} else if (extcon_get_state(edev, EXTCON_CHG_USB_DCP) > 0) {
drivers/power/supply/max8997_charger.c
111
} else if (extcon_get_state(edev, EXTCON_CHG_USB_FAST) > 0) {
drivers/power/supply/max8997_charger.c
114
} else if (extcon_get_state(edev, EXTCON_CHG_USB_SLOW) > 0) {
drivers/power/supply/max8997_charger.c
117
} else if (extcon_get_state(edev, EXTCON_CHG_USB_CDP) > 0) {
drivers/power/supply/max8997_charger.c
244
charger->edev = extcon_get_extcon_dev("max8997-muic");
drivers/power/supply/max8997_charger.c
245
if (IS_ERR(charger->edev)) {
drivers/power/supply/max8997_charger.c
246
dev_err_probe(charger->dev, PTR_ERR(charger->edev),
drivers/power/supply/max8997_charger.c
248
return PTR_ERR(charger->edev);
drivers/power/supply/max8997_charger.c
251
if (!IS_ERR(charger->reg) && !IS_ERR_OR_NULL(charger->edev)) {
drivers/power/supply/max8997_charger.c
259
ret = devm_extcon_register_notifier_all(&pdev->dev, charger->edev,
drivers/power/supply/max8997_charger.c
38
struct extcon_dev *edev;
drivers/power/supply/pm8916_lbc.c
190
extcon_set_state_sync(chg->edev, EXTCON_USB, chg->online);
drivers/power/supply/pm8916_lbc.c
330
chg->edev = devm_extcon_dev_allocate(dev, pm8916_lbc_charger_cable);
drivers/power/supply/pm8916_lbc.c
331
if (IS_ERR(chg->edev))
drivers/power/supply/pm8916_lbc.c
332
return PTR_ERR(chg->edev);
drivers/power/supply/pm8916_lbc.c
334
ret = devm_extcon_dev_register(dev, chg->edev);
drivers/power/supply/pm8916_lbc.c
348
extcon_set_state_sync(chg->edev, EXTCON_USB, chg->online);
drivers/power/supply/pm8916_lbc.c
59
struct extcon_dev *edev;
drivers/power/supply/qcom_smbb.c
110
struct extcon_dev *edev;
drivers/power/supply/qcom_smbb.c
379
extcon_set_state_sync(chg->edev, EXTCON_USB,
drivers/power/supply/qcom_smbb.c
903
chg->edev = devm_extcon_dev_allocate(&pdev->dev, smbb_usb_extcon_cable);
drivers/power/supply/qcom_smbb.c
904
if (IS_ERR(chg->edev)) {
drivers/power/supply/qcom_smbb.c
909
rc = devm_extcon_dev_register(&pdev->dev, chg->edev);
drivers/power/supply/rt5033_charger.c
34
struct extcon_dev *edev;
drivers/power/supply/rt5033_charger.c
579
struct extcon_dev *edev = charger->edev;
drivers/power/supply/rt5033_charger.c
585
state = extcon_get_state(edev, connector);
drivers/power/supply/rt5033_charger.c
703
charger->edev = extcon_find_edev_by_node(np_edev);
drivers/power/supply/rt5033_charger.c
706
if (IS_ERR(charger->edev)) {
drivers/power/supply/rt5033_charger.c
719
ret = devm_extcon_register_notifier_all(charger->dev, charger->edev,
drivers/scsi/advansys.c
11300
static unsigned int advansys_eisa_irq_no(struct eisa_device *edev)
drivers/scsi/advansys.c
11302
unsigned short cfg_lsw = inw(edev->base_addr + 0xc86);
drivers/scsi/advansys.c
11313
struct eisa_device *edev = to_eisa_device(dev);
drivers/scsi/advansys.c
11320
ioport = edev->base_addr + 0xc30;
drivers/scsi/advansys.c
11346
irq = advansys_eisa_irq_no(edev);
drivers/scsi/aha1740.c
118
shpnt->io_port, shpnt->irq, host->edev->slot,
drivers/scsi/aha1740.c
224
struct eisa_device *edev;
drivers/scsi/aha1740.c
231
edev = HOSTDATA(host)->edev;
drivers/scsi/aha1740.c
263
dma_free_coherent (&edev->dev,
drivers/scsi/aha1740.c
393
SCpnt->host_scribble = dma_alloc_coherent (&host->edev->dev,
drivers/scsi/aha1740.c
565
struct eisa_device *edev = to_eisa_device (dev);
drivers/scsi/aha1740.c
569
slotbase = edev->base_addr + EISA_VENDOR_ID_OFFSET;
drivers/scsi/aha1740.c
582
edev->slot, slotbase, irq_level, irq_type ? "edge" : "level");
drivers/scsi/aha1740.c
596
host->edev = edev;
drivers/scsi/aha1740.c
598
host->ecb_dma_addr = dma_map_single (&edev->dev, host->ecb,
drivers/scsi/aha1740.c
614
eisa_set_drvdata (edev, shpnt);
drivers/scsi/aha1740.c
626
dma_unmap_single (&edev->dev, host->ecb_dma_addr,
drivers/scsi/aha1740.c
77
struct eisa_device *edev;
drivers/scsi/aic7xxx/aic7770_osm.c
80
struct eisa_device *edev = to_eisa_device(dev);
drivers/scsi/aic7xxx/aic7770_osm.c
81
u_int eisaBase = edev->base_addr+AHC_EISA_SLOT_OFFSET;
drivers/scsi/aic7xxx/aic7770_osm.c
95
error = aic7770_config(ahc, aic7770_ident_table + edev->id.driver_data,
drivers/scsi/libsas/sas_expander.c
519
struct sas_expander_device *edev = rphy_to_expander_device(rphy);
drivers/scsi/libsas/sas_expander.c
521
memcpy(edev->vendor_id, mi_resp + 12, SAS_EXPANDER_VENDOR_ID_LEN);
drivers/scsi/libsas/sas_expander.c
522
memcpy(edev->product_id, mi_resp + 20, SAS_EXPANDER_PRODUCT_ID_LEN);
drivers/scsi/libsas/sas_expander.c
523
memcpy(edev->product_rev, mi_resp + 36,
drivers/scsi/libsas/sas_expander.c
527
memcpy(edev->component_vendor_id, mi_resp + 40,
drivers/scsi/libsas/sas_expander.c
529
edev->component_id = mi_resp[48] << 8 | mi_resp[49];
drivers/scsi/libsas/sas_expander.c
530
edev->component_revision_id = mi_resp[50];
drivers/scsi/libsas/sas_expander.c
896
struct sas_expander_device *edev;
drivers/scsi/libsas/sas_expander.c
932
edev = rphy_to_expander_device(rphy);
drivers/scsi/libsas/sas_expander.c
942
edev->level = parent_ex->level + 1;
drivers/scsi/libsas/sas_expander.c
944
edev->level);
drivers/scsi/mpi3mr/mpi3mr_transport.c
130
u64 sas_address, struct sas_expander_device *edev, u8 port_id)
drivers/scsi/mpi3mr/mpi3mr_transport.c
219
memtostr(edev->vendor_id, manufacture_reply->vendor_id);
drivers/scsi/mpi3mr/mpi3mr_transport.c
220
memtostr(edev->product_id, manufacture_reply->product_id);
drivers/scsi/mpi3mr/mpi3mr_transport.c
221
memtostr(edev->product_rev, manufacture_reply->product_rev);
drivers/scsi/mpi3mr/mpi3mr_transport.c
222
edev->level = manufacture_reply->sas_format & 1;
drivers/scsi/mpi3mr/mpi3mr_transport.c
223
if (edev->level) {
drivers/scsi/mpi3mr/mpi3mr_transport.c
224
memtostr(edev->component_vendor_id,
drivers/scsi/mpi3mr/mpi3mr_transport.c
227
edev->component_id = tmp[0] << 8 | tmp[1];
drivers/scsi/mpi3mr/mpi3mr_transport.c
228
edev->component_revision_id =
drivers/scsi/mpt3sas/mpt3sas_transport.c
357
u64 sas_address, struct sas_expander_device *edev, u8 port_id)
drivers/scsi/mpt3sas/mpt3sas_transport.c
464
memtostr(edev->vendor_id, manufacture_reply->vendor_id);
drivers/scsi/mpt3sas/mpt3sas_transport.c
465
memtostr(edev->product_id, manufacture_reply->product_id);
drivers/scsi/mpt3sas/mpt3sas_transport.c
466
memtostr(edev->product_rev, manufacture_reply->product_rev);
drivers/scsi/mpt3sas/mpt3sas_transport.c
467
edev->level = manufacture_reply->sas_format & 1;
drivers/scsi/mpt3sas/mpt3sas_transport.c
468
if (edev->level) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
469
memtostr(edev->component_vendor_id,
drivers/scsi/mpt3sas/mpt3sas_transport.c
472
edev->component_id = tmp[0] << 8 | tmp[1];
drivers/scsi/mpt3sas/mpt3sas_transport.c
473
edev->component_revision_id =
drivers/scsi/scsi_transport_sas.c
1337
struct sas_expander_device *edev = rphy_to_expander_device(rphy); \
drivers/scsi/scsi_transport_sas.c
1339
return snprintf(buf, 20, format_string, cast edev->field); \
drivers/scsi/scsi_transport_sas.c
1429
struct sas_expander_device *edev = rphy_to_expander_device(rphy);
drivers/scsi/scsi_transport_sas.c
1432
kfree(edev);
drivers/scsi/scsi_transport_sas.c
1438
struct sas_end_device *edev = rphy_to_end_device(rphy);
drivers/scsi/scsi_transport_sas.c
1441
kfree(edev);
drivers/scsi/ses.c
178
static int ses_set_page2_descriptor(struct enclosure_device *edev,
drivers/scsi/ses.c
183
struct scsi_device *sdev = to_scsi_device(edev->edev.parent);
drivers/scsi/ses.c
184
struct ses_device *ses_dev = edev->scratch;
drivers/scsi/ses.c
209
static unsigned char *ses_get_page2_descriptor(struct enclosure_device *edev,
drivers/scsi/ses.c
213
struct scsi_device *sdev = to_scsi_device(edev->edev.parent);
drivers/scsi/ses.c
214
struct ses_device *ses_dev = edev->scratch;
drivers/scsi/ses.c
238
static void ses_get_fault(struct enclosure_device *edev,
drivers/scsi/ses.c
243
if (!ses_page2_supported(edev)) {
drivers/scsi/ses.c
247
desc = ses_get_page2_descriptor(edev, ecomp);
drivers/scsi/ses.c
252
static int ses_set_fault(struct enclosure_device *edev,
drivers/scsi/ses.c
259
if (!ses_page2_supported(edev))
drivers/scsi/ses.c
262
desc_ptr = ses_get_page2_descriptor(edev, ecomp);
drivers/scsi/ses.c
281
return ses_set_page2_descriptor(edev, ecomp, desc);
drivers/scsi/ses.c
284
static void ses_get_status(struct enclosure_device *edev,
drivers/scsi/ses.c
289
if (!ses_page2_supported(edev)) {
drivers/scsi/ses.c
293
desc = ses_get_page2_descriptor(edev, ecomp);
drivers/scsi/ses.c
298
static void ses_get_locate(struct enclosure_device *edev,
drivers/scsi/ses.c
303
if (!ses_page2_supported(edev)) {
drivers/scsi/ses.c
307
desc = ses_get_page2_descriptor(edev, ecomp);
drivers/scsi/ses.c
312
static int ses_set_locate(struct enclosure_device *edev,
drivers/scsi/ses.c
319
if (!ses_page2_supported(edev))
drivers/scsi/ses.c
322
desc_ptr = ses_get_page2_descriptor(edev, ecomp);
drivers/scsi/ses.c
340
return ses_set_page2_descriptor(edev, ecomp, desc);
drivers/scsi/ses.c
343
static int ses_set_active(struct enclosure_device *edev,
drivers/scsi/ses.c
350
if (!ses_page2_supported(edev))
drivers/scsi/ses.c
353
desc_ptr = ses_get_page2_descriptor(edev, ecomp);
drivers/scsi/ses.c
373
return ses_set_page2_descriptor(edev, ecomp, desc);
drivers/scsi/ses.c
376
static int ses_show_id(struct enclosure_device *edev, char *buf)
drivers/scsi/ses.c
378
struct ses_device *ses_dev = edev->scratch;
drivers/scsi/ses.c
38
static bool ses_page2_supported(struct enclosure_device *edev)
drivers/scsi/ses.c
384
static void ses_get_power_status(struct enclosure_device *edev,
drivers/scsi/ses.c
389
if (!ses_page2_supported(edev)) {
drivers/scsi/ses.c
394
desc = ses_get_page2_descriptor(edev, ecomp);
drivers/scsi/ses.c
399
static int ses_set_power_status(struct enclosure_device *edev,
drivers/scsi/ses.c
40
struct ses_device *ses_dev = edev->scratch;
drivers/scsi/ses.c
406
if (!ses_page2_supported(edev))
drivers/scsi/ses.c
409
desc_ptr = ses_get_page2_descriptor(edev, ecomp);
drivers/scsi/ses.c
428
return ses_set_page2_descriptor(edev, ecomp, desc);
drivers/scsi/ses.c
445
struct enclosure_device *edev;
drivers/scsi/ses.c
449
int ses_match_host(struct enclosure_device *edev, void *data)
drivers/scsi/ses.c
454
if (!scsi_is_sdev_device(edev->edev.parent))
drivers/scsi/ses.c
457
sdev = to_scsi_device(edev->edev.parent);
drivers/scsi/ses.c
462
sed->edev = edev;
drivers/scsi/ses.c
530
static int ses_enclosure_find_by_addr(struct enclosure_device *edev,
drivers/scsi/ses.c
536
for (i = 0; i < edev->components; i++) {
drivers/scsi/ses.c
537
scomp = edev->component[i].scratch;
drivers/scsi/ses.c
541
if (enclosure_add_device(edev, i, efd->dev) == 0)
drivers/scsi/ses.c
550
static void ses_enclosure_data_process(struct enclosure_device *edev,
drivers/scsi/ses.c
557
struct ses_device *ses_dev = edev->scratch;
drivers/scsi/ses.c
622
edev,
drivers/scsi/ses.c
626
else if (components < edev->components)
drivers/scsi/ses.c
627
ecomp = &edev->component[components++];
drivers/scsi/ses.c
667
static void ses_match_to_enclosure(struct enclosure_device *edev,
drivers/scsi/ses.c
671
struct scsi_device *edev_sdev = to_scsi_device(edev->edev.parent);
drivers/scsi/ses.c
677
ses_enclosure_data_process(edev, edev_sdev, 0);
drivers/scsi/ses.c
685
ses_enclosure_find_by_addr(edev, &efd);
drivers/scsi/ses.c
699
struct enclosure_device *edev;
drivers/scsi/ses.c
706
while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) {
drivers/scsi/ses.c
707
ses_match_to_enclosure(edev, sdev, 1);
drivers/scsi/ses.c
708
prev = edev;
drivers/scsi/ses.c
806
edev = enclosure_register(cdev->parent, dev_name(&sdev->sdev_gendev),
drivers/scsi/ses.c
808
if (IS_ERR(edev)) {
drivers/scsi/ses.c
809
err = PTR_ERR(edev);
drivers/scsi/ses.c
815
edev->scratch = ses_dev;
drivers/scsi/ses.c
817
edev->component[i].scratch = scomp + i;
drivers/scsi/ses.c
819
ses_enclosure_data_process(edev, sdev, 1);
drivers/scsi/ses.c
826
ses_match_to_enclosure(edev, tmp_sdev, 0);
drivers/scsi/ses.c
850
struct enclosure_device *edev, *prev = NULL;
drivers/scsi/ses.c
852
while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) {
drivers/scsi/ses.c
853
prev = edev;
drivers/scsi/ses.c
854
if (!enclosure_remove_device(edev, &sdev->sdev_gendev))
drivers/scsi/ses.c
857
if (edev)
drivers/scsi/ses.c
858
put_device(&edev->edev);
drivers/scsi/ses.c
863
struct enclosure_device *edev;
drivers/scsi/ses.c
867
edev = enclosure_find(&sdev->sdev_gendev, NULL);
drivers/scsi/ses.c
868
if (!edev)
drivers/scsi/ses.c
871
ses_dev = edev->scratch;
drivers/scsi/ses.c
872
edev->scratch = NULL;
drivers/scsi/ses.c
879
if (edev->components)
drivers/scsi/ses.c
880
kfree(edev->component[0].scratch);
drivers/scsi/ses.c
882
put_device(&edev->edev);
drivers/scsi/ses.c
883
enclosure_unregister(edev);
drivers/scsi/sim710.c
170
struct eisa_device *edev = to_eisa_device(dev);
drivers/scsi/sim710.c
171
unsigned long io_addr = edev->base_addr;
drivers/scsi/sim710.c
178
if(strcmp(edev->id.sig, "HWP0C80") == 0) {
drivers/usb/chipidea/ci_hdrc_imx.c
559
if (!IS_ERR(pdata.id_extcon.edev) ||
drivers/usb/chipidea/ci_hdrc_imx.c
563
if (!IS_ERR(pdata.vbus_extcon.edev) ||
drivers/usb/chipidea/ci_hdrc_msm.c
117
if (!IS_ERR(ci->platdata->vbus_extcon.edev) || ci->role_switch) {
drivers/usb/chipidea/core.c
1340
if ((!IS_ERR(cable_id->edev) || ci->role_switch)
drivers/usb/chipidea/core.c
1345
if ((!IS_ERR(cable_vbus->edev) || ci->role_switch)
drivers/usb/chipidea/core.c
782
cable->edev = ext_vbus;
drivers/usb/chipidea/core.c
785
ret = extcon_get_state(cable->edev, EXTCON_USB);
drivers/usb/chipidea/core.c
794
cable->edev = ext_id;
drivers/usb/chipidea/core.c
797
ret = extcon_get_state(cable->edev, EXTCON_USB_HOST);
drivers/usb/chipidea/core.c
837
if (!IS_ERR_OR_NULL(id->edev)) {
drivers/usb/chipidea/core.c
838
ret = devm_extcon_register_notifier(ci->dev, id->edev,
drivers/usb/chipidea/core.c
848
if (!IS_ERR_OR_NULL(vbus->edev)) {
drivers/usb/chipidea/core.c
849
ret = devm_extcon_register_notifier(ci->dev, vbus->edev,
drivers/usb/chipidea/otg.c
102
if (!IS_ERR(cable->edev) || ci->role_switch) {
drivers/usb/chipidea/otg.c
191
IS_ERR(ci->platdata->vbus_extcon.edev))
drivers/usb/chipidea/otg.c
39
if (!IS_ERR(cable->edev) || ci->role_switch) {
drivers/usb/chipidea/otg.c
57
if (!IS_ERR(cable->edev) || ci->role_switch) {
drivers/usb/chipidea/otg.c
88
if (!IS_ERR(cable->edev) || ci->role_switch) {
drivers/usb/dwc3/core.c
190
if (desired_dr_role == DWC3_GCTL_PRTCAP_OTG && dwc->edev)
drivers/usb/dwc3/core.c
1991
struct extcon_dev *edev = NULL;
drivers/usb/dwc3/core.c
2029
edev = extcon_find_edev_by_node(np_conn);
drivers/usb/dwc3/core.c
2034
return edev;
drivers/usb/dwc3/core.c
2307
dwc->edev = dwc3_get_extcon(dwc);
drivers/usb/dwc3/core.c
2308
if (IS_ERR(dwc->edev)) {
drivers/usb/dwc3/core.c
2309
ret = dev_err_probe(dwc->dev, PTR_ERR(dwc->edev), "failed to get extcon\n");
drivers/usb/dwc3/core.c
93
if (mode == USB_DR_MODE_OTG && !dwc->edev &&
drivers/usb/dwc3/core.h
1242
struct extcon_dev *edev;
drivers/usb/dwc3/drd.c
424
if (dwc->edev) {
drivers/usb/dwc3/drd.c
425
id = extcon_get_state(dwc->edev, EXTCON_USB_HOST);
drivers/usb/dwc3/drd.c
554
if (dwc->edev) {
drivers/usb/dwc3/drd.c
556
ret = extcon_register_notifier(dwc->edev, EXTCON_USB_HOST,
drivers/usb/dwc3/drd.c
603
if (dwc->edev)
drivers/usb/dwc3/drd.c
604
extcon_unregister_notifier(dwc->edev, EXTCON_USB_HOST,
drivers/usb/dwc3/dwc3-omap.c
127
struct extcon_dev *edev;
drivers/usb/dwc3/dwc3-omap.c
417
struct extcon_dev *edev;
drivers/usb/dwc3/dwc3-omap.c
420
edev = extcon_get_edev_by_phandle(omap->dev, 0);
drivers/usb/dwc3/dwc3-omap.c
421
if (IS_ERR(edev)) {
drivers/usb/dwc3/dwc3-omap.c
427
ret = devm_extcon_register_notifier(omap->dev, edev,
drivers/usb/dwc3/dwc3-omap.c
433
ret = devm_extcon_register_notifier(omap->dev, edev,
drivers/usb/dwc3/dwc3-omap.c
438
if (extcon_get_state(edev, EXTCON_USB) == true)
drivers/usb/dwc3/dwc3-omap.c
443
if (extcon_get_state(edev, EXTCON_USB_HOST) == true)
drivers/usb/dwc3/dwc3-omap.c
448
omap->edev = edev;
drivers/usb/dwc3/dwc3-omap.c
589
if (extcon_get_state(omap->edev, EXTCON_USB))
drivers/usb/dwc3/dwc3-omap.c
594
if (extcon_get_state(omap->edev, EXTCON_USB_HOST))
drivers/usb/dwc3/dwc3-qcom-legacy.c
167
qcom->edev = extcon_get_edev_by_phandle(dev, 0);
drivers/usb/dwc3/dwc3-qcom-legacy.c
168
if (IS_ERR(qcom->edev))
drivers/usb/dwc3/dwc3-qcom-legacy.c
169
return dev_err_probe(dev, PTR_ERR(qcom->edev),
drivers/usb/dwc3/dwc3-qcom-legacy.c
178
ret = devm_extcon_register_notifier(dev, qcom->edev, EXTCON_USB,
drivers/usb/dwc3/dwc3-qcom-legacy.c
188
host_edev = qcom->edev;
drivers/usb/dwc3/dwc3-qcom-legacy.c
199
if (extcon_get_state(qcom->edev, EXTCON_USB) ||
drivers/usb/dwc3/dwc3-qcom-legacy.c
201
dwc3_qcom_vbus_notifier(&qcom->vbus_nb, true, qcom->edev);
drivers/usb/dwc3/dwc3-qcom-legacy.c
203
dwc3_qcom_vbus_notifier(&qcom->vbus_nb, false, qcom->edev);
drivers/usb/dwc3/dwc3-qcom-legacy.c
83
struct extcon_dev *edev;
drivers/usb/gadget/udc/amd5536udc.h
571
struct extcon_dev *edev;
drivers/usb/gadget/udc/snps_udc_plat.c
160
udc->edev = extcon_get_edev_by_phandle(dev, 0);
drivers/usb/gadget/udc/snps_udc_plat.c
161
if (IS_ERR(udc->edev)) {
drivers/usb/gadget/udc/snps_udc_plat.c
162
if (PTR_ERR(udc->edev) == -EPROBE_DEFER)
drivers/usb/gadget/udc/snps_udc_plat.c
165
ret = PTR_ERR(udc->edev);
drivers/usb/gadget/udc/snps_udc_plat.c
170
ret = extcon_register_notifier(udc->edev, EXTCON_USB,
drivers/usb/gadget/udc/snps_udc_plat.c
177
ret = extcon_get_state(udc->edev, EXTCON_USB);
drivers/usb/gadget/udc/snps_udc_plat.c
216
if (udc->edev)
drivers/usb/gadget/udc/snps_udc_plat.c
217
extcon_unregister_notifier(udc->edev, EXTCON_USB, &udc->nb);
drivers/usb/gadget/udc/snps_udc_plat.c
246
extcon_unregister_notifier(dev->edev, EXTCON_USB, &dev->nb);
drivers/usb/gadget/udc/snps_udc_plat.c
259
if (extcon_get_state(udc->edev, EXTCON_USB) > 0) {
drivers/usb/gadget/udc/snps_udc_plat.c
289
if (extcon_get_state(udc->edev, EXTCON_USB) > 0) {
drivers/usb/mtu3/mtu3.h
219
struct extcon_dev *edev;
drivers/usb/mtu3/mtu3_dr.c
200
struct extcon_dev *edev = otg_sx->edev;
drivers/usb/mtu3/mtu3_dr.c
204
if (!edev)
drivers/usb/mtu3/mtu3_dr.c
208
ret = devm_extcon_register_notifier(ssusb->dev, edev, EXTCON_USB_HOST,
drivers/usb/mtu3/mtu3_dr.c
215
ret = extcon_get_state(edev, EXTCON_USB_HOST);
drivers/usb/mtu3/mtu3_plat.c
311
otg_sx->edev = extcon_get_edev_by_phandle(ssusb->dev, 0);
drivers/usb/mtu3/mtu3_plat.c
312
if (IS_ERR(otg_sx->edev)) {
drivers/usb/mtu3/mtu3_plat.c
313
return dev_err_probe(dev, PTR_ERR(otg_sx->edev),
drivers/usb/phy/phy.c
179
if (extcon_get_state(usb_phy->edev, EXTCON_CHG_USB_SDP) > 0) {
drivers/usb/phy/phy.c
182
} else if (extcon_get_state(usb_phy->edev, EXTCON_CHG_USB_CDP) > 0) {
drivers/usb/phy/phy.c
185
} else if (extcon_get_state(usb_phy->edev, EXTCON_CHG_USB_DCP) > 0) {
drivers/usb/phy/phy.c
188
} else if (extcon_get_state(usb_phy->edev, EXTCON_CHG_USB_ACA) > 0) {
drivers/usb/phy/phy.c
362
x->edev = extcon_get_edev_by_phandle(x->dev, 0);
drivers/usb/phy/phy.c
363
if (IS_ERR(x->edev))
drivers/usb/phy/phy.c
364
return PTR_ERR(x->edev);
drivers/usb/phy/phy.c
373
ret = devm_extcon_register_notifier(x->dev, x->edev,
drivers/usb/phy/phy.c
384
ret = devm_extcon_register_notifier(x->dev, x->edev,
drivers/usb/phy/phy.c
393
ret = devm_extcon_register_notifier(x->dev, x->edev,
drivers/usb/phy/phy.c
402
ret = devm_extcon_register_notifier(x->dev, x->edev,
drivers/usb/phy/phy.c
411
ret = devm_extcon_register_notifier(x->dev, x->edev,
drivers/usb/phy/phy.c
427
id_ext = x->edev;
drivers/usb/renesas_usbhs/common.c
461
if (priv->edev) {
drivers/usb/renesas_usbhs/common.c
462
cable = extcon_get_state(priv->edev, EXTCON_USB_HOST);
drivers/usb/renesas_usbhs/common.c
642
priv->edev = extcon_get_edev_by_phandle(dev, 0);
drivers/usb/renesas_usbhs/common.c
643
if (IS_ERR(priv->edev))
drivers/usb/renesas_usbhs/common.c
644
return PTR_ERR(priv->edev);
drivers/usb/renesas_usbhs/common.h
262
struct extcon_dev *edev;
drivers/watchdog/i6300esb.c
110
static inline void esb_unlock_registers(struct esb_dev *edev)
drivers/watchdog/i6300esb.c
112
writew(ESB_UNLOCK1, ESB_RELOAD_REG(edev));
drivers/watchdog/i6300esb.c
113
writew(ESB_UNLOCK2, ESB_RELOAD_REG(edev));
drivers/watchdog/i6300esb.c
118
struct esb_dev *edev = to_esb_dev(wdd);
drivers/watchdog/i6300esb.c
122
esb_unlock_registers(edev);
drivers/watchdog/i6300esb.c
123
writew(ESB_WDT_RELOAD, ESB_RELOAD_REG(edev));
drivers/watchdog/i6300esb.c
126
pci_write_config_byte(edev->pdev, ESB_LOCK_REG, val);
drivers/watchdog/i6300esb.c
132
struct esb_dev *edev = to_esb_dev(wdd);
drivers/watchdog/i6300esb.c
136
esb_unlock_registers(edev);
drivers/watchdog/i6300esb.c
137
writew(ESB_WDT_RELOAD, ESB_RELOAD_REG(edev));
drivers/watchdog/i6300esb.c
139
pci_write_config_byte(edev->pdev, ESB_LOCK_REG, 0x0);
drivers/watchdog/i6300esb.c
140
pci_read_config_byte(edev->pdev, ESB_LOCK_REG, &val);
drivers/watchdog/i6300esb.c
148
struct esb_dev *edev = to_esb_dev(wdd);
drivers/watchdog/i6300esb.c
150
esb_unlock_registers(edev);
drivers/watchdog/i6300esb.c
151
writew(ESB_WDT_RELOAD, ESB_RELOAD_REG(edev));
drivers/watchdog/i6300esb.c
159
struct esb_dev *edev = to_esb_dev(wdd);
drivers/watchdog/i6300esb.c
169
esb_unlock_registers(edev);
drivers/watchdog/i6300esb.c
170
writel(val, ESB_TIMER1_REG(edev));
drivers/watchdog/i6300esb.c
173
esb_unlock_registers(edev);
drivers/watchdog/i6300esb.c
174
writel(val, ESB_TIMER2_REG(edev));
drivers/watchdog/i6300esb.c
177
esb_unlock_registers(edev);
drivers/watchdog/i6300esb.c
178
writew(ESB_WDT_RELOAD, ESB_RELOAD_REG(edev));
drivers/watchdog/i6300esb.c
217
static unsigned char esb_getdevice(struct esb_dev *edev)
drivers/watchdog/i6300esb.c
219
if (pci_enable_device(edev->pdev)) {
drivers/watchdog/i6300esb.c
220
dev_err(&edev->pdev->dev, "failed to enable device\n");
drivers/watchdog/i6300esb.c
224
if (pci_request_region(edev->pdev, 0, ESB_MODULE_NAME)) {
drivers/watchdog/i6300esb.c
225
dev_err(&edev->pdev->dev, "failed to request region\n");
drivers/watchdog/i6300esb.c
229
edev->base = pci_ioremap_bar(edev->pdev, 0);
drivers/watchdog/i6300esb.c
230
if (edev->base == NULL) {
drivers/watchdog/i6300esb.c
232
dev_err(&edev->pdev->dev, "failed to get BASEADDR\n");
drivers/watchdog/i6300esb.c
237
dev_set_drvdata(&edev->pdev->dev, edev);
drivers/watchdog/i6300esb.c
241
pci_release_region(edev->pdev, 0);
drivers/watchdog/i6300esb.c
243
pci_disable_device(edev->pdev);
drivers/watchdog/i6300esb.c
248
static void esb_initdevice(struct esb_dev *edev)
drivers/watchdog/i6300esb.c
265
pci_write_config_word(edev->pdev, ESB_CONFIG_REG, 0x0003);
drivers/watchdog/i6300esb.c
268
pci_read_config_byte(edev->pdev, ESB_LOCK_REG, &val1);
drivers/watchdog/i6300esb.c
270
dev_warn(&edev->pdev->dev, "nowayout already set\n");
drivers/watchdog/i6300esb.c
273
pci_write_config_byte(edev->pdev, ESB_LOCK_REG, 0x00);
drivers/watchdog/i6300esb.c
276
esb_unlock_registers(edev);
drivers/watchdog/i6300esb.c
277
val2 = readw(ESB_RELOAD_REG(edev));
drivers/watchdog/i6300esb.c
279
edev->wdd.bootstatus = WDIOF_CARDRESET;
drivers/watchdog/i6300esb.c
282
esb_unlock_registers(edev);
drivers/watchdog/i6300esb.c
283
writew((ESB_WDT_TIMEOUT | ESB_WDT_RELOAD), ESB_RELOAD_REG(edev));
drivers/watchdog/i6300esb.c
286
esb_timer_set_heartbeat(&edev->wdd, edev->wdd.timeout);
drivers/watchdog/i6300esb.c
292
struct esb_dev *edev;
drivers/watchdog/i6300esb.c
295
edev = devm_kzalloc(&pdev->dev, sizeof(*edev), GFP_KERNEL);
drivers/watchdog/i6300esb.c
296
if (!edev)
drivers/watchdog/i6300esb.c
300
edev->pdev = pdev;
drivers/watchdog/i6300esb.c
301
if (!esb_getdevice(edev))
drivers/watchdog/i6300esb.c
305
edev->wdd.info = &esb_info;
drivers/watchdog/i6300esb.c
306
edev->wdd.ops = &esb_ops;
drivers/watchdog/i6300esb.c
307
edev->wdd.min_timeout = ESB_HEARTBEAT_MIN;
drivers/watchdog/i6300esb.c
308
edev->wdd.max_timeout = ESB_HEARTBEAT_MAX;
drivers/watchdog/i6300esb.c
309
edev->wdd.timeout = ESB_HEARTBEAT_DEFAULT;
drivers/watchdog/i6300esb.c
310
watchdog_init_timeout(&edev->wdd, heartbeat, NULL);
drivers/watchdog/i6300esb.c
311
watchdog_set_nowayout(&edev->wdd, nowayout);
drivers/watchdog/i6300esb.c
312
watchdog_stop_on_reboot(&edev->wdd);
drivers/watchdog/i6300esb.c
313
watchdog_stop_on_unregister(&edev->wdd);
drivers/watchdog/i6300esb.c
314
esb_initdevice(edev);
drivers/watchdog/i6300esb.c
317
ret = watchdog_register_device(&edev->wdd);
drivers/watchdog/i6300esb.c
322
edev->wdd.timeout, nowayout);
drivers/watchdog/i6300esb.c
326
iounmap(edev->base);
drivers/watchdog/i6300esb.c
327
pci_release_region(edev->pdev, 0);
drivers/watchdog/i6300esb.c
328
pci_disable_device(edev->pdev);
drivers/watchdog/i6300esb.c
334
struct esb_dev *edev = dev_get_drvdata(&pdev->dev);
drivers/watchdog/i6300esb.c
336
watchdog_unregister_device(&edev->wdd);
drivers/watchdog/i6300esb.c
337
iounmap(edev->base);
drivers/watchdog/i6300esb.c
338
pci_release_region(edev->pdev, 0);
drivers/watchdog/i6300esb.c
339
pci_disable_device(edev->pdev);
include/linux/devfreq-event.h
101
extern int devfreq_event_enable_edev(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
102
extern int devfreq_event_disable_edev(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
103
extern bool devfreq_event_is_enabled(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
104
extern int devfreq_event_set_event(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
105
extern int devfreq_event_get_event(struct devfreq_event_dev *edev,
include/linux/devfreq-event.h
107
extern int devfreq_event_reset_event(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
116
extern int devfreq_event_remove_edev(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
120
struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
121
static inline void *devfreq_event_get_drvdata(struct devfreq_event_dev *edev)
include/linux/devfreq-event.h
123
return edev->desc->driver_data;
include/linux/devfreq-event.h
126
static inline int devfreq_event_enable_edev(struct devfreq_event_dev *edev)
include/linux/devfreq-event.h
131
static inline int devfreq_event_disable_edev(struct devfreq_event_dev *edev)
include/linux/devfreq-event.h
136
static inline bool devfreq_event_is_enabled(struct devfreq_event_dev *edev)
include/linux/devfreq-event.h
141
static inline int devfreq_event_set_event(struct devfreq_event_dev *edev)
include/linux/devfreq-event.h
146
static inline int devfreq_event_get_event(struct devfreq_event_dev *edev,
include/linux/devfreq-event.h
152
static inline int devfreq_event_reset_event(struct devfreq_event_dev *edev)
include/linux/devfreq-event.h
177
static inline int devfreq_event_remove_edev(struct devfreq_event_dev *edev)
include/linux/devfreq-event.h
190
struct devfreq_event_dev *edev)
include/linux/devfreq-event.h
194
static inline void *devfreq_event_get_drvdata(struct devfreq_event_dev *edev)
include/linux/devfreq-event.h
67
int (*enable)(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
68
int (*disable)(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
69
int (*reset)(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
72
int (*set_event)(struct devfreq_event_dev *edev);
include/linux/devfreq-event.h
73
int (*get_event)(struct devfreq_event_dev *edev,
include/linux/eisa.h
83
static inline void *eisa_get_drvdata (struct eisa_device *edev)
include/linux/eisa.h
85
return dev_get_drvdata(&edev->dev);
include/linux/eisa.h
88
static inline void eisa_set_drvdata (struct eisa_device *edev, void *data)
include/linux/eisa.h
90
dev_set_drvdata(&edev->dev, data);
include/linux/enclosure.h
101
struct device edev;
include/linux/enclosure.h
110
return container_of(dev, struct enclosure_device, edev);
include/linux/extcon-provider.h
103
static inline int extcon_set_state_sync(struct extcon_dev *edev, unsigned int id,
include/linux/extcon-provider.h
109
static inline int extcon_sync(struct extcon_dev *edev, unsigned int id)
include/linux/extcon-provider.h
114
static inline int extcon_set_property(struct extcon_dev *edev, unsigned int id,
include/linux/extcon-provider.h
121
static inline int extcon_set_property_sync(struct extcon_dev *edev,
include/linux/extcon-provider.h
128
static inline int extcon_set_property_capability(struct extcon_dev *edev,
include/linux/extcon-provider.h
20
int extcon_dev_register(struct extcon_dev *edev);
include/linux/extcon-provider.h
21
void extcon_dev_unregister(struct extcon_dev *edev);
include/linux/extcon-provider.h
23
struct extcon_dev *edev);
include/linux/extcon-provider.h
25
struct extcon_dev *edev);
include/linux/extcon-provider.h
29
void extcon_dev_free(struct extcon_dev *edev);
include/linux/extcon-provider.h
32
void devm_extcon_dev_free(struct device *dev, struct extcon_dev *edev);
include/linux/extcon-provider.h
35
int extcon_sync(struct extcon_dev *edev, unsigned int id);
include/linux/extcon-provider.h
41
int extcon_set_state(struct extcon_dev *edev, unsigned int id,
include/linux/extcon-provider.h
43
int extcon_set_state_sync(struct extcon_dev *edev, unsigned int id,
include/linux/extcon-provider.h
55
int extcon_set_property(struct extcon_dev *edev, unsigned int id,
include/linux/extcon-provider.h
58
int extcon_set_property_sync(struct extcon_dev *edev, unsigned int id,
include/linux/extcon-provider.h
61
int extcon_set_property_capability(struct extcon_dev *edev,
include/linux/extcon-provider.h
65
static inline int extcon_dev_register(struct extcon_dev *edev)
include/linux/extcon-provider.h
70
static inline void extcon_dev_unregister(struct extcon_dev *edev) { }
include/linux/extcon-provider.h
73
struct extcon_dev *edev)
include/linux/extcon-provider.h
79
struct extcon_dev *edev) { }
include/linux/extcon-provider.h
86
static inline void extcon_dev_free(struct extcon_dev *edev) { }
include/linux/extcon-provider.h
94
static inline void devm_extcon_dev_free(struct extcon_dev *edev) { }
include/linux/extcon-provider.h
97
static inline int extcon_set_state(struct extcon_dev *edev, unsigned int id,
include/linux/extcon.h
175
int extcon_get_state(struct extcon_dev *edev, unsigned int id);
include/linux/extcon.h
186
int extcon_get_property(struct extcon_dev *edev, unsigned int id,
include/linux/extcon.h
189
int extcon_get_property_capability(struct extcon_dev *edev,
include/linux/extcon.h
201
int extcon_register_notifier(struct extcon_dev *edev, unsigned int id,
include/linux/extcon.h
203
int extcon_unregister_notifier(struct extcon_dev *edev, unsigned int id,
include/linux/extcon.h
206
struct extcon_dev *edev, unsigned int id,
include/linux/extcon.h
209
struct extcon_dev *edev, unsigned int id,
include/linux/extcon.h
212
int extcon_register_notifier_all(struct extcon_dev *edev,
include/linux/extcon.h
214
int extcon_unregister_notifier_all(struct extcon_dev *edev,
include/linux/extcon.h
217
struct extcon_dev *edev,
include/linux/extcon.h
220
struct extcon_dev *edev,
include/linux/extcon.h
232
const char *extcon_get_edev_name(struct extcon_dev *edev);
include/linux/extcon.h
235
static inline int extcon_get_state(struct extcon_dev *edev, unsigned int id)
include/linux/extcon.h
240
static inline int extcon_get_property(struct extcon_dev *edev, unsigned int id,
include/linux/extcon.h
247
static inline int extcon_get_property_capability(struct extcon_dev *edev,
include/linux/extcon.h
253
static inline int extcon_register_notifier(struct extcon_dev *edev,
include/linux/extcon.h
259
static inline int extcon_unregister_notifier(struct extcon_dev *edev,
include/linux/extcon.h
266
struct extcon_dev *edev, unsigned int id,
include/linux/extcon.h
273
struct extcon_dev *edev, unsigned int id,
include/linux/extcon.h
276
static inline int extcon_register_notifier_all(struct extcon_dev *edev,
include/linux/extcon.h
282
static inline int extcon_unregister_notifier_all(struct extcon_dev *edev,
include/linux/extcon.h
289
struct extcon_dev *edev,
include/linux/extcon.h
296
struct extcon_dev *edev,
include/linux/extcon.h
315
static inline const char *extcon_get_edev_name(struct extcon_dev *edev)
include/linux/extcon.h
328
struct extcon_dev *edev;
include/linux/mfd/palmas.h
562
struct extcon_dev *edev;
include/linux/pci.h
2787
return pdev->dev.archdata.edev;
include/linux/qed/qede_rdma.h
58
void qede_rdma_event_change_mtu(struct qede_dev *edev);
include/linux/usb/chipidea.h
28
struct extcon_dev *edev;
include/linux/usb/phy.h
103
struct extcon_dev *edev;
tools/usb/usbip/libsrc/usbip_host_common.c
101
for (i = 0; i < edev->udev.bNumInterfaces; i++) {
tools/usb/usbip/libsrc/usbip_host_common.c
105
hdriver->ops.read_interface(&edev->udev, i, &edev->uinf[i]);
tools/usb/usbip/libsrc/usbip_host_common.c
108
return edev;
tools/usb/usbip/libsrc/usbip_host_common.c
110
if (edev->sudev)
tools/usb/usbip/libsrc/usbip_host_common.c
111
udev_device_unref(edev->sudev);
tools/usb/usbip/libsrc/usbip_host_common.c
112
if (edev)
tools/usb/usbip/libsrc/usbip_host_common.c
113
free(edev);
tools/usb/usbip/libsrc/usbip_host_common.c
120
struct usbip_exported_device *edev;
tools/usb/usbip/libsrc/usbip_host_common.c
141
edev = usbip_exported_device_new(hdriver, path);
tools/usb/usbip/libsrc/usbip_host_common.c
142
if (!edev) {
tools/usb/usbip/libsrc/usbip_host_common.c
147
list_add(&edev->node, &hdriver->edev_list);
tools/usb/usbip/libsrc/usbip_host_common.c
158
struct usbip_exported_device *edev;
tools/usb/usbip/libsrc/usbip_host_common.c
161
edev = list_entry(i, struct usbip_exported_device, node);
tools/usb/usbip/libsrc/usbip_host_common.c
163
free(edev);
tools/usb/usbip/libsrc/usbip_host_common.c
212
int usbip_export_device(struct usbip_exported_device *edev, int sockfd)
tools/usb/usbip/libsrc/usbip_host_common.c
220
if (edev->status != SDEV_ST_AVAILABLE) {
tools/usb/usbip/libsrc/usbip_host_common.c
221
dbg("device not available: %s", edev->udev.busid);
tools/usb/usbip/libsrc/usbip_host_common.c
222
switch (edev->status) {
tools/usb/usbip/libsrc/usbip_host_common.c
232
dbg("status unknown: 0x%x", edev->status);
tools/usb/usbip/libsrc/usbip_host_common.c
240
edev->udev.path, attr_name);
tools/usb/usbip/libsrc/usbip_host_common.c
262
info("connect: %s", edev->udev.busid);
tools/usb/usbip/libsrc/usbip_host_common.c
271
struct usbip_exported_device *edev;
tools/usb/usbip/libsrc/usbip_host_common.c
275
edev = list_entry(i, struct usbip_exported_device, node);
tools/usb/usbip/libsrc/usbip_host_common.c
277
return edev;
tools/usb/usbip/libsrc/usbip_host_common.c
68
struct usbip_exported_device *edev = NULL;
tools/usb/usbip/libsrc/usbip_host_common.c
73
edev = calloc(1, sizeof(struct usbip_exported_device));
tools/usb/usbip/libsrc/usbip_host_common.c
75
edev->sudev =
tools/usb/usbip/libsrc/usbip_host_common.c
77
if (!edev->sudev) {
tools/usb/usbip/libsrc/usbip_host_common.c
82
if (hdriver->ops.read_device(edev->sudev, &edev->udev) < 0)
tools/usb/usbip/libsrc/usbip_host_common.c
85
edev->status = read_attr_usbip_status(&edev->udev);
tools/usb/usbip/libsrc/usbip_host_common.c
86
if (edev->status < 0)
tools/usb/usbip/libsrc/usbip_host_common.c
91
edev->udev.bNumInterfaces * sizeof(struct usbip_usb_interface);
tools/usb/usbip/libsrc/usbip_host_common.c
93
edev_old = edev;
tools/usb/usbip/libsrc/usbip_host_common.c
94
edev = realloc(edev, size);
tools/usb/usbip/libsrc/usbip_host_common.c
95
if (!edev) {
tools/usb/usbip/libsrc/usbip_host_common.c
96
edev = edev_old;
tools/usb/usbip/libsrc/usbip_host_common.h
88
int usbip_export_device(struct usbip_exported_device *edev, int sockfd);
tools/usb/usbip/src/usbipd.c
111
edev = list_entry(i, struct usbip_exported_device, node);
tools/usb/usbip/src/usbipd.c
112
if (!strncmp(req.busid, edev->udev.busid, SYSFS_BUS_ID_SIZE)) {
tools/usb/usbip/src/usbipd.c
124
status = usbip_export_device(edev, sockfd);
tools/usb/usbip/src/usbipd.c
143
memcpy(&pdu_udev, &edev->udev, sizeof(pdu_udev));
tools/usb/usbip/src/usbipd.c
159
struct usbip_exported_device *edev;
tools/usb/usbip/src/usbipd.c
178
edev = list_entry(j, struct usbip_exported_device, node);
tools/usb/usbip/src/usbipd.c
179
if (edev->status != SDEV_ST_USED)
tools/usb/usbip/src/usbipd.c
198
edev = list_entry(j, struct usbip_exported_device, node);
tools/usb/usbip/src/usbipd.c
199
if (edev->status == SDEV_ST_USED)
tools/usb/usbip/src/usbipd.c
202
dump_usb_device(&edev->udev);
tools/usb/usbip/src/usbipd.c
203
memcpy(&pdu_udev, &edev->udev, sizeof(pdu_udev));
tools/usb/usbip/src/usbipd.c
212
for (i = 0; i < edev->udev.bNumInterfaces; i++) {
tools/usb/usbip/src/usbipd.c
213
dump_usb_interface(&edev->uinf[i]);
tools/usb/usbip/src/usbipd.c
214
memcpy(&pdu_uinf, &edev->uinf[i], sizeof(pdu_uinf));
tools/usb/usbip/src/usbipd.c
94
struct usbip_exported_device *edev;