Lines Matching +full:per +full:- +full:device
3 * Copyright (c) 2006 - 2012 QLogic Corporation. All rights reserved.
16 * - Redistributions of source code must retain the above
20 * - Redistributions in binary form must reproduce the above
39 /* start of per-port functions */
45 struct qib_devdata *dd = ppd->dd; in show_hrtbt_enb()
48 ret = dd->f_get_ib_cfg(ppd, QIB_IB_CFG_HRTBT); in show_hrtbt_enb()
56 struct qib_devdata *dd = ppd->dd; in store_hrtbt_enb()
67 * Set the "intentional" heartbeat enable per either of in store_hrtbt_enb()
73 ret = dd->f_set_ib_cfg(ppd, QIB_IB_CFG_HRTBT, val); in store_hrtbt_enb()
80 struct qib_devdata *dd = ppd->dd; in store_loopback()
83 r = dd->f_set_ib_loopback(ppd, buf); in store_loopback()
93 struct qib_devdata *dd = ppd->dd; in store_led_override()
111 if (!ppd->statusp) in show_status()
112 ret = -EINVAL; in show_status()
115 (unsigned long long) *(ppd->statusp)); in show_status()
143 if (!ppd->statusp) { in show_status_str()
144 ret = -EINVAL; in show_status_str()
148 s = *(ppd->statusp); in show_status_str()
171 /* end of per-port functions */
174 * Start of per-port file structures and support code
205 * Start of per-port congestion control structures and support code
219 if (!qib_cc_table_size || !ppd->ccti_entries_shadow) in read_cc_table_bin()
220 return -EINVAL; in read_cc_table_bin()
222 ret = ppd->total_cct_entry * sizeof(struct ib_cc_table_entry_shadow) in read_cc_table_bin()
226 return -EINVAL; in read_cc_table_bin()
228 if (count > ret - pos) in read_cc_table_bin()
229 count = ret - pos; in read_cc_table_bin()
234 spin_lock(&ppd->cc_shadow_lock); in read_cc_table_bin()
235 memcpy(buf, ppd->ccti_entries_shadow, count); in read_cc_table_bin()
236 spin_unlock(&ppd->cc_shadow_lock); in read_cc_table_bin()
258 * entries for the congestion entries - increase, timer, event log
269 if (!qib_cc_table_size || !ppd->congestion_entries_shadow) in read_cc_setting_bin()
270 return -EINVAL; in read_cc_setting_bin()
275 return -EINVAL; in read_cc_setting_bin()
276 if (count > ret - pos) in read_cc_setting_bin()
277 count = ret - pos; in read_cc_setting_bin()
282 spin_lock(&ppd->cc_shadow_lock); in read_cc_setting_bin()
283 memcpy(buf, ppd->congestion_entries_shadow, count); in read_cc_setting_bin()
284 spin_unlock(&ppd->cc_shadow_lock); in read_cc_setting_bin()
304 if (!pattr->show) in qib_portattr_show()
305 return -EIO; in qib_portattr_show()
307 return pattr->show(ppd, buf); in qib_portattr_show()
318 if (!pattr->store) in qib_portattr_store()
319 return -EIO; in qib_portattr_store()
321 return pattr->store(ppd, buf, len); in qib_portattr_store()
393 struct qib_ibport *qibp = &ppd->ibport_data; in sl2vl_attr_show()
395 return sprintf(buf, "%u\n", qibp->sl_to_vl[sattr->sl]); in sl2vl_attr_show()
480 struct qib_devdata *dd = ppd->dd; \
481 struct qib_ibport *qibp = &ppd->ibport_data; \
484 qibp->rvp.z_##cntr = get_all_cpu_total(qibp->rvp.cntr); \
486 qib_dev_err(dd, "Per CPU cntrs can only be zeroed"); \
493 #define READ_PER_CPU_CNTR(cntr) (get_all_cpu_total(qibp->rvp.cntr) - \ in def_write_per_cpu()
494 qibp->rvp.z_##cntr) in def_write_per_cpu()
503 struct qib_ibport *qibp = &ppd->ibport_data; in def_write_per_cpu()
505 if (!strncmp(dattr->attr.name, "rc_acks", 7)) in def_write_per_cpu()
507 else if (!strncmp(dattr->attr.name, "rc_qacks", 8)) in def_write_per_cpu()
509 else if (!strncmp(dattr->attr.name, "rc_delayed_comp", 15)) in def_write_per_cpu()
514 *(u32 *)((char *)qibp + dattr->counter)); in def_write_per_cpu()
524 struct qib_ibport *qibp = &ppd->ibport_data; in diagc_attr_store()
532 if (!strncmp(dattr->attr.name, "rc_acks", 7)) in diagc_attr_store()
534 else if (!strncmp(dattr->attr.name, "rc_qacks", 8)) in diagc_attr_store()
536 else if (!strncmp(dattr->attr.name, "rc_delayed_comp", 15)) in diagc_attr_store()
539 *(u32 *)((char *)qibp + dattr->counter) = val; in diagc_attr_store()
556 /* end of per-port file structures and support code */
559 * Start of per-unit (or driver, in some cases, but replicated
560 * per unit) functions (these get a device *)
562 static ssize_t hw_rev_show(struct device *device, struct device_attribute *attr, in hw_rev_show() argument
566 rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev); in hw_rev_show()
568 return sprintf(buf, "%x\n", dd_from_dev(dev)->minrev); in hw_rev_show()
572 static ssize_t hca_type_show(struct device *device, in hca_type_show() argument
576 rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev); in hca_type_show()
580 if (!dd->boardname) in hca_type_show()
581 ret = -EINVAL; in hca_type_show()
583 ret = scnprintf(buf, PAGE_SIZE, "%s\n", dd->boardname); in hca_type_show()
589 static ssize_t version_show(struct device *device, in version_show() argument
592 /* The string printed here is already newline-terminated. */ in version_show()
597 static ssize_t boardversion_show(struct device *device, in boardversion_show() argument
601 rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev); in boardversion_show()
604 /* The string printed here is already newline-terminated. */ in boardversion_show()
605 return scnprintf(buf, PAGE_SIZE, "%s", dd->boardversion); in boardversion_show()
609 static ssize_t localbus_info_show(struct device *device, in localbus_info_show() argument
613 rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev); in localbus_info_show()
616 /* The string printed here is already newline-terminated. */ in localbus_info_show()
617 return scnprintf(buf, PAGE_SIZE, "%s", dd->lbus_info); in localbus_info_show()
621 static ssize_t nctxts_show(struct device *device, in nctxts_show() argument
625 rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev); in nctxts_show()
630 * cfgctxts is set to 1 on a single-port board. */ in nctxts_show()
632 (dd->first_user_ctxt > dd->cfgctxts) ? 0 : in nctxts_show()
633 (dd->cfgctxts - dd->first_user_ctxt)); in nctxts_show()
637 static ssize_t nfreectxts_show(struct device *device, in nfreectxts_show() argument
641 rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev); in nfreectxts_show()
645 return scnprintf(buf, PAGE_SIZE, "%u\n", dd->freectxts); in nfreectxts_show()
649 static ssize_t serial_show(struct device *device, in serial_show() argument
653 rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev); in serial_show()
656 buf[sizeof(dd->serial)] = '\0'; in serial_show()
657 memcpy(buf, dd->serial, sizeof(dd->serial)); in serial_show()
663 static ssize_t chip_reset_store(struct device *device, in chip_reset_store() argument
668 rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev); in chip_reset_store()
672 if (count < 5 || memcmp(buf, "reset", 5) || !dd->diag_client) { in chip_reset_store()
673 ret = -EINVAL; in chip_reset_store()
677 ret = qib_reset_device(dd->unit); in chip_reset_store()
684 * Dump tempsense regs. in decimal, to ease shell-scripts.
686 static ssize_t tempsense_show(struct device *device, in tempsense_show() argument
690 rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev); in tempsense_show()
696 ret = -ENXIO; in tempsense_show()
700 ret = dd->f_tempsense_rd(dd, idx); in tempsense_show()
717 * end of per-unit (or driver, in some cases, but replicated
718 * per unit) functions
721 /* start of per-unit file structures and support code */
748 if (!port_num || port_num > dd->num_pports) { in qib_create_port_files()
752 ret = -ENODEV; in qib_create_port_files()
755 ppd = &dd->pport[port_num - 1]; in qib_create_port_files()
757 ret = kobject_init_and_add(&ppd->pport_kobj, &qib_port_ktype, kobj, in qib_create_port_files()
765 kobject_uevent(&ppd->pport_kobj, KOBJ_ADD); in qib_create_port_files()
767 ret = kobject_init_and_add(&ppd->sl2vl_kobj, &qib_sl2vl_ktype, kobj, in qib_create_port_files()
775 kobject_uevent(&ppd->sl2vl_kobj, KOBJ_ADD); in qib_create_port_files()
777 ret = kobject_init_and_add(&ppd->diagc_kobj, &qib_diagc_ktype, kobj, in qib_create_port_files()
785 kobject_uevent(&ppd->diagc_kobj, KOBJ_ADD); in qib_create_port_files()
787 if (!qib_cc_table_size || !ppd->congestion_entries_shadow) in qib_create_port_files()
790 ret = kobject_init_and_add(&ppd->pport_cc_kobj, &qib_port_cc_ktype, in qib_create_port_files()
799 kobject_uevent(&ppd->pport_cc_kobj, KOBJ_ADD); in qib_create_port_files()
801 ret = sysfs_create_bin_file(&ppd->pport_cc_kobj, in qib_create_port_files()
810 ret = sysfs_create_bin_file(&ppd->pport_cc_kobj, in qib_create_port_files()
819 qib_devinfo(dd->pcidev, in qib_create_port_files()
821 dd->unit, port_num); in qib_create_port_files()
826 sysfs_remove_bin_file(&ppd->pport_cc_kobj, &cc_setting_bin_attr); in qib_create_port_files()
828 kobject_put(&ppd->pport_cc_kobj); in qib_create_port_files()
830 kobject_put(&ppd->diagc_kobj); in qib_create_port_files()
832 kobject_put(&ppd->sl2vl_kobj); in qib_create_port_files()
834 kobject_put(&ppd->pport_kobj); in qib_create_port_files()
847 for (i = 0; i < dd->num_pports; i++) { in qib_verbs_unregister_sysfs()
848 ppd = &dd->pport[i]; in qib_verbs_unregister_sysfs()
850 ppd->congestion_entries_shadow) { in qib_verbs_unregister_sysfs()
851 sysfs_remove_bin_file(&ppd->pport_cc_kobj, in qib_verbs_unregister_sysfs()
853 sysfs_remove_bin_file(&ppd->pport_cc_kobj, in qib_verbs_unregister_sysfs()
855 kobject_put(&ppd->pport_cc_kobj); in qib_verbs_unregister_sysfs()
857 kobject_put(&ppd->diagc_kobj); in qib_verbs_unregister_sysfs()
858 kobject_put(&ppd->sl2vl_kobj); in qib_verbs_unregister_sysfs()
859 kobject_put(&ppd->pport_kobj); in qib_verbs_unregister_sysfs()