Lines Matching +full:32 +full:- +full:63

1 // SPDX-License-Identifier: GPL-2.0-or-later
10 #define pr_fmt(fmt) "hv-gpci: " fmt
18 #include "hv-gpci.h"
19 #include "hv-common.h"
23 * perf stat -e 'hv_gpci/counter_info_version=3,offset=0,length=8,
34 * used depends on the event. See REQUEST_IDX_KIND in hv-gpci-requests.h
36 EVENT_DEFINE_RANGE_FORMAT(starting_index, config, 32, 63);
37 EVENT_DEFINE_RANGE_FORMAT_LITE(phys_processor_idx, config, 32, 63);
38 EVENT_DEFINE_RANGE_FORMAT_LITE(sibling_part_id, config, 32, 63);
39 EVENT_DEFINE_RANGE_FORMAT_LITE(hw_chip_id, config, 32, 63);
40 EVENT_DEFINE_RANGE_FORMAT_LITE(partition_id, config, 32, 63);
46 /* u8, bytes of data (1-8) */
49 EVENT_DEFINE_RANGE_FORMAT(offset, config1, 32, 63);
86 return -EIO; \
160 arg->params.counter_request = cpu_to_be32(req); in single_gpci_request()
161 arg->params.starting_index = cpu_to_be32(starting_index); in single_gpci_request()
162 arg->params.secondary_index = cpu_to_be16(secondary_index); in single_gpci_request()
163 arg->params.counter_info_version_in = version_in; in single_gpci_request()
178 count |= arg->bytes[i] << (i - offset); in single_gpci_request()
205 prev = local64_xchg(&event->hw.prev_count, now); in h_gpci_event_update()
206 local64_add(now - prev, &event->count); in h_gpci_event_update()
211 local64_set(&event->hw.prev_count, h_gpci_get_value(event)); in h_gpci_event_start()
233 if (event->attr.type != event->pmu->type) in h_gpci_event_init()
234 return -ENOENT; in h_gpci_event_init()
237 if (event->attr.config2) { in h_gpci_event_init()
239 return -EINVAL; in h_gpci_event_init()
244 return -EOPNOTSUPP; in h_gpci_event_init()
249 return -EINVAL; in h_gpci_event_init()
257 return -EINVAL; in h_gpci_event_init()
269 return -EINVAL; in h_gpci_event_init()
310 return -1; in ppc_hv_gpci_cpu_offline()
338 return -ENODEV; in hv_gpci_init()
345 return -ENODEV; in hv_gpci_init()
356 r = perf_pmu_register(&h_gpci_pmu, h_gpci_pmu.name, -1); in hv_gpci_init()