Lines Matching refs:filter

229 	val |= FIELD_PREP(HISI_PTT_TRACE_CTRL_TARGET_SEL, hisi_ptt->trace_ctrl.filter);  in hisi_ptt_trace_start()
358 struct hisi_ptt_filter_desc *filter) in hisi_ptt_del_free_filter() argument
360 if (filter->is_port) in hisi_ptt_del_free_filter()
361 hisi_ptt->port_mask &= ~hisi_ptt_get_filter_val(filter->devid, true); in hisi_ptt_del_free_filter()
363 list_del(&filter->list); in hisi_ptt_del_free_filter()
364 kfree(filter->name); in hisi_ptt_del_free_filter()
365 kfree(filter); in hisi_ptt_del_free_filter()
371 struct hisi_ptt_filter_desc *filter; in hisi_ptt_alloc_add_filter() local
384 filter = kzalloc(sizeof(*filter), GFP_KERNEL); in hisi_ptt_alloc_add_filter()
385 if (!filter) { in hisi_ptt_alloc_add_filter()
392 filter->name = filter_name; in hisi_ptt_alloc_add_filter()
393 filter->is_port = is_port; in hisi_ptt_alloc_add_filter()
394 filter->devid = devid; in hisi_ptt_alloc_add_filter()
396 if (filter->is_port) { in hisi_ptt_alloc_add_filter()
397 list_add_tail(&filter->list, &hisi_ptt->port_filters); in hisi_ptt_alloc_add_filter()
400 hisi_ptt->port_mask |= hisi_ptt_get_filter_val(filter->devid, true); in hisi_ptt_alloc_add_filter()
402 list_add_tail(&filter->list, &hisi_ptt->req_filters); in hisi_ptt_alloc_add_filter()
405 return filter; in hisi_ptt_alloc_add_filter()
411 struct hisi_ptt_filter_desc *filter; in hisi_ptt_filter_show() local
414 filter = container_of(attr, struct hisi_ptt_filter_desc, attr); in hisi_ptt_filter_show()
415 filter_val = hisi_ptt_get_filter_val(filter->devid, filter->is_port) | in hisi_ptt_filter_show()
416 (filter->is_port ? HISI_PTT_PMU_FILTER_IS_PORT : 0); in hisi_ptt_filter_show()
422 struct hisi_ptt_filter_desc *filter) in hisi_ptt_create_rp_filter_attr() argument
426 sysfs_attr_init(&filter->attr.attr); in hisi_ptt_create_rp_filter_attr()
427 filter->attr.attr.name = filter->name; in hisi_ptt_create_rp_filter_attr()
428 filter->attr.attr.mode = 0400; /* DEVICE_ATTR_ADMIN_RO */ in hisi_ptt_create_rp_filter_attr()
429 filter->attr.show = hisi_ptt_filter_show; in hisi_ptt_create_rp_filter_attr()
431 return sysfs_add_file_to_group(kobj, &filter->attr.attr, in hisi_ptt_create_rp_filter_attr()
436 struct hisi_ptt_filter_desc *filter) in hisi_ptt_remove_rp_filter_attr() argument
440 sysfs_remove_file_from_group(kobj, &filter->attr.attr, in hisi_ptt_remove_rp_filter_attr()
445 struct hisi_ptt_filter_desc *filter) in hisi_ptt_create_req_filter_attr() argument
449 sysfs_attr_init(&filter->attr.attr); in hisi_ptt_create_req_filter_attr()
450 filter->attr.attr.name = filter->name; in hisi_ptt_create_req_filter_attr()
451 filter->attr.attr.mode = 0400; /* DEVICE_ATTR_ADMIN_RO */ in hisi_ptt_create_req_filter_attr()
452 filter->attr.show = hisi_ptt_filter_show; in hisi_ptt_create_req_filter_attr()
454 return sysfs_add_file_to_group(kobj, &filter->attr.attr, in hisi_ptt_create_req_filter_attr()
459 struct hisi_ptt_filter_desc *filter) in hisi_ptt_remove_req_filter_attr() argument
463 sysfs_remove_file_from_group(kobj, &filter->attr.attr, in hisi_ptt_remove_req_filter_attr()
468 struct hisi_ptt_filter_desc *filter) in hisi_ptt_create_filter_attr() argument
472 if (filter->is_port) in hisi_ptt_create_filter_attr()
473 ret = hisi_ptt_create_rp_filter_attr(hisi_ptt, filter); in hisi_ptt_create_filter_attr()
475 ret = hisi_ptt_create_req_filter_attr(hisi_ptt, filter); in hisi_ptt_create_filter_attr()
479 filter->name); in hisi_ptt_create_filter_attr()
485 struct hisi_ptt_filter_desc *filter) in hisi_ptt_remove_filter_attr() argument
487 if (filter->is_port) in hisi_ptt_remove_filter_attr()
488 hisi_ptt_remove_rp_filter_attr(hisi_ptt, filter); in hisi_ptt_remove_filter_attr()
490 hisi_ptt_remove_req_filter_attr(hisi_ptt, filter); in hisi_ptt_remove_filter_attr()
495 struct hisi_ptt_filter_desc *filter; in hisi_ptt_remove_all_filter_attributes() local
500 list_for_each_entry(filter, &hisi_ptt->req_filters, list) in hisi_ptt_remove_all_filter_attributes()
501 hisi_ptt_remove_filter_attr(hisi_ptt, filter); in hisi_ptt_remove_all_filter_attributes()
503 list_for_each_entry(filter, &hisi_ptt->port_filters, list) in hisi_ptt_remove_all_filter_attributes()
504 hisi_ptt_remove_filter_attr(hisi_ptt, filter); in hisi_ptt_remove_all_filter_attributes()
512 struct hisi_ptt_filter_desc *filter; in hisi_ptt_init_filter_attributes() local
528 list_for_each_entry(filter, &hisi_ptt->port_filters, list) { in hisi_ptt_init_filter_attributes()
529 ret = hisi_ptt_create_filter_attr(hisi_ptt, filter); in hisi_ptt_init_filter_attributes()
534 list_for_each_entry(filter, &hisi_ptt->req_filters, list) { in hisi_ptt_init_filter_attributes()
535 ret = hisi_ptt_create_filter_attr(hisi_ptt, filter); in hisi_ptt_init_filter_attributes()
550 struct hisi_ptt_filter_desc *filter; in hisi_ptt_update_filters() local
567 filter = hisi_ptt_alloc_add_filter(hisi_ptt, info.devid, info.is_port); in hisi_ptt_update_filters()
568 if (!filter) in hisi_ptt_update_filters()
578 hisi_ptt_create_filter_attr(hisi_ptt, filter)) { in hisi_ptt_update_filters()
579 hisi_ptt_del_free_filter(hisi_ptt, filter); in hisi_ptt_update_filters()
589 list_for_each_entry_safe(filter, tmp, target_list, list) in hisi_ptt_update_filters()
590 if (filter->devid == info.devid) { in hisi_ptt_update_filters()
592 hisi_ptt_remove_filter_attr(hisi_ptt, filter); in hisi_ptt_update_filters()
594 hisi_ptt_del_free_filter(hisi_ptt, filter); in hisi_ptt_update_filters()
660 struct hisi_ptt_filter_desc *filter; in hisi_ptt_init_filters() local
677 filter = hisi_ptt_alloc_add_filter(hisi_ptt, pci_dev_id(pdev), in hisi_ptt_init_filters()
679 if (!filter) in hisi_ptt_init_filters()
687 struct hisi_ptt_filter_desc *filter, *tmp; in hisi_ptt_release_filters() local
690 list_for_each_entry_safe(filter, tmp, &hisi_ptt->req_filters, list) in hisi_ptt_release_filters()
691 hisi_ptt_del_free_filter(hisi_ptt, filter); in hisi_ptt_release_filters()
693 list_for_each_entry_safe(filter, tmp, &hisi_ptt->port_filters, list) in hisi_ptt_release_filters()
694 hisi_ptt_del_free_filter(hisi_ptt, filter); in hisi_ptt_release_filters()
801 PMU_FORMAT_ATTR(filter, "config:0-19");
943 struct hisi_ptt_filter_desc *filter; in hisi_ptt_trace_valid_filter() local
960 list_for_each_entry(filter, &hisi_ptt->req_filters, list) { in hisi_ptt_trace_valid_filter()
961 if (val == hisi_ptt_get_filter_val(filter->devid, filter->is_port)) in hisi_ptt_trace_valid_filter()
980 hisi_ptt->trace_ctrl.filter = val; in hisi_ptt_pmu_init_configs()