Symbol: parser
arch/loongarch/kernel/setup.c
507
struct of_range_parser parser;
arch/loongarch/kernel/setup.c
511
if (of_range_parser_init(&parser, np)) {
arch/loongarch/kernel/setup.c
517
for_each_of_range(&parser, &range) {
arch/mips/loongson64/init.c
194
struct of_range_parser parser;
arch/mips/loongson64/init.c
198
if (of_range_parser_init(&parser, np)) {
arch/mips/loongson64/init.c
204
for_each_of_range(&parser, &range) {
arch/mips/pci/pci-legacy.c
148
struct of_pci_range_parser parser;
arch/mips/pci/pci-legacy.c
152
if (of_pci_range_parser_init(&parser, node))
arch/mips/pci/pci-legacy.c
155
for_each_of_pci_range(&parser, &range) {
arch/powerpc/kernel/isa-bridge.c
62
struct of_range_parser parser;
arch/powerpc/kernel/isa-bridge.c
65
if (of_range_parser_init(&parser, isa_node))
arch/powerpc/kernel/isa-bridge.c
68
for_each_of_range(&parser, &range) {
arch/powerpc/kernel/pci-common.c
760
struct of_pci_range_parser parser;
arch/powerpc/kernel/pci-common.c
766
if (of_pci_range_parser_init(&parser, dev))
arch/powerpc/kernel/pci-common.c
770
for_each_of_pci_range(&parser, &range) {
arch/powerpc/platforms/44x/pci.c
106
if (of_pci_dma_range_parser_init(&parser, hose->dn))
arch/powerpc/platforms/44x/pci.c
109
for_each_of_range(&parser, &range) {
arch/powerpc/platforms/44x/pci.c
97
struct of_range_parser parser;
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
375
struct of_range_parser parser;
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
382
of_range_parser_init(&parser, lb_node);
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
383
lpbfifo.cs_n = of_range_count(&parser);
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
390
for_each_of_range(&parser, &range) {
crypto/asymmetric_keys/asymmetric_type.c
401
struct asymmetric_key_parser *parser;
crypto/asymmetric_keys/asymmetric_type.c
412
list_for_each_entry(parser, &asymmetric_key_parsers, link) {
crypto/asymmetric_keys/asymmetric_type.c
413
pr_debug("Trying parser '%s'\n", parser->name);
crypto/asymmetric_keys/asymmetric_type.c
415
ret = parser->parse(prep);
crypto/asymmetric_keys/asymmetric_type.c
627
int register_asymmetric_key_parser(struct asymmetric_key_parser *parser)
crypto/asymmetric_keys/asymmetric_type.c
635
if (strcmp(cursor->name, parser->name) == 0) {
crypto/asymmetric_keys/asymmetric_type.c
637
parser->name);
crypto/asymmetric_keys/asymmetric_type.c
643
list_add_tail(&parser->link, &asymmetric_key_parsers);
crypto/asymmetric_keys/asymmetric_type.c
645
pr_notice("Asymmetric key parser '%s' registered\n", parser->name);
crypto/asymmetric_keys/asymmetric_type.c
658
void unregister_asymmetric_key_parser(struct asymmetric_key_parser *parser)
crypto/asymmetric_keys/asymmetric_type.c
661
list_del(&parser->link);
crypto/asymmetric_keys/asymmetric_type.c
664
pr_notice("Asymmetric key parser '%s' unregistered\n", parser->name);
drivers/accel/habanalabs/common/command_submission.c
319
struct hl_cs_parser parser;
drivers/accel/habanalabs/common/command_submission.c
322
parser.ctx_id = job->cs->ctx->asid;
drivers/accel/habanalabs/common/command_submission.c
323
parser.cs_sequence = job->cs->sequence;
drivers/accel/habanalabs/common/command_submission.c
324
parser.job_id = job->id;
drivers/accel/habanalabs/common/command_submission.c
326
parser.hw_queue_id = job->hw_queue_id;
drivers/accel/habanalabs/common/command_submission.c
327
parser.job_userptr_list = &job->userptr_list;
drivers/accel/habanalabs/common/command_submission.c
328
parser.patched_cb = NULL;
drivers/accel/habanalabs/common/command_submission.c
329
parser.user_cb = job->user_cb;
drivers/accel/habanalabs/common/command_submission.c
330
parser.user_cb_size = job->user_cb_size;
drivers/accel/habanalabs/common/command_submission.c
331
parser.queue_type = job->queue_type;
drivers/accel/habanalabs/common/command_submission.c
332
parser.is_kernel_allocated_cb = job->is_kernel_allocated_cb;
drivers/accel/habanalabs/common/command_submission.c
334
parser.completion = cs_needs_completion(job->cs);
drivers/accel/habanalabs/common/command_submission.c
336
rc = hdev->asic_funcs->cs_parser(hdev, &parser);
drivers/accel/habanalabs/common/command_submission.c
340
job->patched_cb = parser.patched_cb;
drivers/accel/habanalabs/common/command_submission.c
341
job->job_cb_size = parser.patched_cb_size;
drivers/accel/habanalabs/common/command_submission.c
342
job->contains_dma_pkt = parser.contains_dma_pkt;
drivers/accel/habanalabs/common/habanalabs.h
1683
int (*cs_parser)(struct hl_device *hdev, struct hl_cs_parser *parser);
drivers/accel/habanalabs/gaudi/gaudi.c
4897
struct hl_cs_parser *parser,
drivers/accel/habanalabs/gaudi/gaudi.c
4905
parser->job_userptr_list, &userptr))
drivers/accel/habanalabs/gaudi/gaudi.c
4917
list_add_tail(&userptr->job_node, parser->job_userptr_list);
drivers/accel/habanalabs/gaudi/gaudi.c
4929
parser->patched_cb_size +=
drivers/accel/habanalabs/gaudi/gaudi.c
4943
struct hl_cs_parser *parser,
drivers/accel/habanalabs/gaudi/gaudi.c
4972
parser->patched_cb_size += sizeof(*user_dma_pkt);
drivers/accel/habanalabs/gaudi/gaudi.c
4974
rc = gaudi_pin_memory_before_cs(hdev, parser, user_dma_pkt,
drivers/accel/habanalabs/gaudi/gaudi.c
4981
struct hl_cs_parser *parser,
drivers/accel/habanalabs/gaudi/gaudi.c
5001
parser->patched_cb_size += sizeof(*user_dma_pkt);
drivers/accel/habanalabs/gaudi/gaudi.c
5005
if (parser->hw_queue_id <= GAUDI_QUEUE_ID_DMA_0_3)
drivers/accel/habanalabs/gaudi/gaudi.c
5008
return gaudi_validate_dma_pkt_host(hdev, parser, user_dma_pkt,
drivers/accel/habanalabs/gaudi/gaudi.c
5013
struct hl_cs_parser *parser,
drivers/accel/habanalabs/gaudi/gaudi.c
5026
parser->patched_cb_size += sizeof(struct packet_load_and_exe);
drivers/accel/habanalabs/gaudi/gaudi.c
5032
struct hl_cs_parser *parser, bool is_mmu)
drivers/accel/habanalabs/gaudi/gaudi.c
5037
parser->patched_cb_size = 0;
drivers/accel/habanalabs/gaudi/gaudi.c
5040
while (cb_parsed_length < parser->user_cb_size) {
drivers/accel/habanalabs/gaudi/gaudi.c
5045
user_pkt = parser->user_cb->kernel_address + cb_parsed_length;
drivers/accel/habanalabs/gaudi/gaudi.c
5060
if (cb_parsed_length > parser->user_cb_size) {
drivers/accel/habanalabs/gaudi/gaudi.c
5091
rc = gaudi_validate_load_and_exe_pkt(hdev, parser,
drivers/accel/habanalabs/gaudi/gaudi.c
5096
parser->contains_dma_pkt = true;
drivers/accel/habanalabs/gaudi/gaudi.c
5098
parser->patched_cb_size += pkt_size;
drivers/accel/habanalabs/gaudi/gaudi.c
5100
rc = gaudi_validate_dma_pkt_no_mmu(hdev, parser,
drivers/accel/habanalabs/gaudi/gaudi.c
5111
parser->patched_cb_size += pkt_size;
drivers/accel/habanalabs/gaudi/gaudi.c
5131
if (parser->completion)
drivers/accel/habanalabs/gaudi/gaudi.c
5132
parser->patched_cb_size += gaudi_get_patched_cb_extra_size(
drivers/accel/habanalabs/gaudi/gaudi.c
5133
parser->patched_cb_size);
drivers/accel/habanalabs/gaudi/gaudi.c
5139
struct hl_cs_parser *parser,
drivers/accel/habanalabs/gaudi/gaudi.c
5158
if (parser->hw_queue_id <= GAUDI_QUEUE_ID_DMA_0_3)
drivers/accel/habanalabs/gaudi/gaudi.c
5179
parser->job_userptr_list, &userptr))) {
drivers/accel/habanalabs/gaudi/gaudi.c
5258
struct hl_cs_parser *parser)
drivers/accel/habanalabs/gaudi/gaudi.c
5265
while (cb_parsed_length < parser->user_cb_size) {
drivers/accel/habanalabs/gaudi/gaudi.c
5271
user_pkt = parser->user_cb->kernel_address + cb_parsed_length;
drivers/accel/habanalabs/gaudi/gaudi.c
5272
kernel_pkt = parser->patched_cb->kernel_address +
drivers/accel/habanalabs/gaudi/gaudi.c
5288
if (cb_parsed_length > parser->user_cb_size) {
drivers/accel/habanalabs/gaudi/gaudi.c
5297
rc = gaudi_patch_dma_packet(hdev, parser,
drivers/accel/habanalabs/gaudi/gaudi.c
5348
struct hl_cs_parser *parser)
drivers/accel/habanalabs/gaudi/gaudi.c
5361
if (parser->completion)
drivers/accel/habanalabs/gaudi/gaudi.c
5362
parser->patched_cb_size = parser->user_cb_size +
drivers/accel/habanalabs/gaudi/gaudi.c
5363
gaudi_get_patched_cb_extra_size(parser->user_cb_size);
drivers/accel/habanalabs/gaudi/gaudi.c
5365
parser->patched_cb_size = parser->user_cb_size;
drivers/accel/habanalabs/gaudi/gaudi.c
5368
parser->patched_cb_size, false, false,
drivers/accel/habanalabs/gaudi/gaudi.c
5378
parser->patched_cb = hl_cb_get(&hdev->kernel_mem_mgr, handle);
drivers/accel/habanalabs/gaudi/gaudi.c
5380
if (!parser->patched_cb) {
drivers/accel/habanalabs/gaudi/gaudi.c
5396
memcpy(parser->patched_cb->kernel_address,
drivers/accel/habanalabs/gaudi/gaudi.c
5397
parser->user_cb->kernel_address,
drivers/accel/habanalabs/gaudi/gaudi.c
5398
parser->user_cb_size);
drivers/accel/habanalabs/gaudi/gaudi.c
5400
patched_cb_size = parser->patched_cb_size;
drivers/accel/habanalabs/gaudi/gaudi.c
5403
user_cb = parser->user_cb;
drivers/accel/habanalabs/gaudi/gaudi.c
5404
parser->user_cb = parser->patched_cb;
drivers/accel/habanalabs/gaudi/gaudi.c
5405
rc = gaudi_validate_cb(hdev, parser, true);
drivers/accel/habanalabs/gaudi/gaudi.c
5406
parser->user_cb = user_cb;
drivers/accel/habanalabs/gaudi/gaudi.c
5409
hl_cb_put(parser->patched_cb);
drivers/accel/habanalabs/gaudi/gaudi.c
5413
if (patched_cb_size != parser->patched_cb_size) {
drivers/accel/habanalabs/gaudi/gaudi.c
5415
hl_cb_put(parser->patched_cb);
drivers/accel/habanalabs/gaudi/gaudi.c
5433
struct hl_cs_parser *parser)
drivers/accel/habanalabs/gaudi/gaudi.c
5438
rc = gaudi_validate_cb(hdev, parser, false);
drivers/accel/habanalabs/gaudi/gaudi.c
5444
parser->patched_cb_size, false, false,
drivers/accel/habanalabs/gaudi/gaudi.c
5452
parser->patched_cb = hl_cb_get(&hdev->kernel_mem_mgr, handle);
drivers/accel/habanalabs/gaudi/gaudi.c
5454
if (!parser->patched_cb) {
drivers/accel/habanalabs/gaudi/gaudi.c
5460
rc = gaudi_patch_cb(hdev, parser);
drivers/accel/habanalabs/gaudi/gaudi.c
5463
hl_cb_put(parser->patched_cb);
drivers/accel/habanalabs/gaudi/gaudi.c
5476
hl_userptr_delete_list(hdev, parser->job_userptr_list);
drivers/accel/habanalabs/gaudi/gaudi.c
5481
struct hl_cs_parser *parser)
drivers/accel/habanalabs/gaudi/gaudi.c
5487
if ((parser->hw_queue_id >= GAUDI_QUEUE_ID_NIC_0_0) &&
drivers/accel/habanalabs/gaudi/gaudi.c
5488
(parser->hw_queue_id <= GAUDI_QUEUE_ID_NIC_9_3)) {
drivers/accel/habanalabs/gaudi/gaudi.c
5489
nic_queue_offset = parser->hw_queue_id - GAUDI_QUEUE_ID_NIC_0_0;
drivers/accel/habanalabs/gaudi/gaudi.c
5493
dev_err(hdev->dev, "h/w queue %d is disabled\n", parser->hw_queue_id);
drivers/accel/habanalabs/gaudi/gaudi.c
5499
if (hl_mem_area_inside_range((u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/gaudi/gaudi.c
5500
parser->user_cb_size,
drivers/accel/habanalabs/gaudi/gaudi.c
5505
if (hl_mem_area_inside_range((u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/gaudi/gaudi.c
5506
parser->user_cb_size,
drivers/accel/habanalabs/gaudi/gaudi.c
5512
if (hl_mem_area_inside_range((u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/gaudi/gaudi.c
5513
parser->user_cb_size,
drivers/accel/habanalabs/gaudi/gaudi.c
5520
parser->user_cb, parser->user_cb_size);
drivers/accel/habanalabs/gaudi/gaudi.c
5525
static int gaudi_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser)
drivers/accel/habanalabs/gaudi/gaudi.c
5529
if (parser->queue_type == QUEUE_TYPE_INT)
drivers/accel/habanalabs/gaudi/gaudi.c
5530
return gaudi_parse_cb_no_ext_queue(hdev, parser);
drivers/accel/habanalabs/gaudi/gaudi.c
5533
return gaudi_parse_cb_mmu(hdev, parser);
drivers/accel/habanalabs/gaudi/gaudi.c
5535
return gaudi_parse_cb_no_mmu(hdev, parser);
drivers/accel/habanalabs/gaudi2/gaudi2.c
7132
static int gaudi2_validate_cb_address(struct hl_device *hdev, struct hl_cs_parser *parser)
drivers/accel/habanalabs/gaudi2/gaudi2.c
7137
if (!gaudi2_is_queue_enabled(hdev, parser->hw_queue_id)) {
drivers/accel/habanalabs/gaudi2/gaudi2.c
7139
GAUDI2_QUEUE_ID_TO_STR(parser->hw_queue_id));
drivers/accel/habanalabs/gaudi2/gaudi2.c
7145
if (hl_mem_area_inside_range((u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7146
parser->user_cb_size,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7151
if (hl_mem_area_inside_range((u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7152
parser->user_cb_size,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7158
hl_mem_area_inside_range((u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7159
parser->user_cb_size,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7165
if (hl_mem_area_inside_range((u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7166
parser->user_cb_size,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7170
(u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7171
parser->user_cb_size,
drivers/accel/habanalabs/gaudi2/gaudi2.c
7176
} else if (gaudi2_host_phys_addr_valid((u64) (uintptr_t) parser->user_cb)) {
drivers/accel/habanalabs/gaudi2/gaudi2.c
7185
parser->user_cb, parser->user_cb_size);
drivers/accel/habanalabs/gaudi2/gaudi2.c
7190
static int gaudi2_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser)
drivers/accel/habanalabs/gaudi2/gaudi2.c
7194
if (!parser->is_kernel_allocated_cb)
drivers/accel/habanalabs/gaudi2/gaudi2.c
7195
return gaudi2_validate_cb_address(hdev, parser);
drivers/accel/habanalabs/goya/goya.c
3327
struct hl_cs_parser *parser,
drivers/accel/habanalabs/goya/goya.c
3335
parser->job_userptr_list, &userptr))
drivers/accel/habanalabs/goya/goya.c
3347
list_add_tail(&userptr->job_node, parser->job_userptr_list);
drivers/accel/habanalabs/goya/goya.c
3359
parser->patched_cb_size +=
drivers/accel/habanalabs/goya/goya.c
3373
struct hl_cs_parser *parser,
drivers/accel/habanalabs/goya/goya.c
3459
parser->patched_cb_size += sizeof(*user_dma_pkt);
drivers/accel/habanalabs/goya/goya.c
3462
(parser->hw_queue_id > GOYA_QUEUE_ID_DMA_1)) {
drivers/accel/habanalabs/goya/goya.c
3468
rc = goya_pin_memory_before_cs(hdev, parser, user_dma_pkt,
drivers/accel/habanalabs/goya/goya.c
3476
struct hl_cs_parser *parser,
drivers/accel/habanalabs/goya/goya.c
3515
parser->patched_cb_size += sizeof(*user_dma_pkt);
drivers/accel/habanalabs/goya/goya.c
3521
struct hl_cs_parser *parser,
drivers/accel/habanalabs/goya/goya.c
3550
rc = goya_validate_dma_pkt_no_host(hdev, parser, user_dma_pkt);
drivers/accel/habanalabs/goya/goya.c
3552
rc = goya_validate_dma_pkt_host(hdev, parser, user_dma_pkt);
drivers/accel/habanalabs/goya/goya.c
3558
struct hl_cs_parser *parser,
drivers/accel/habanalabs/goya/goya.c
3573
if (parser->hw_queue_id != GOYA_QUEUE_ID_DMA_1 &&
drivers/accel/habanalabs/goya/goya.c
3589
parser->patched_cb_size += sizeof(*user_dma_pkt);
drivers/accel/habanalabs/goya/goya.c
3595
struct hl_cs_parser *parser,
drivers/accel/habanalabs/goya/goya.c
3639
struct hl_cs_parser *parser, bool is_mmu)
drivers/accel/habanalabs/goya/goya.c
3644
parser->patched_cb_size = 0;
drivers/accel/habanalabs/goya/goya.c
3647
while (cb_parsed_length < parser->user_cb_size) {
drivers/accel/habanalabs/goya/goya.c
3652
user_pkt = parser->user_cb->kernel_address + cb_parsed_length;
drivers/accel/habanalabs/goya/goya.c
3667
if (cb_parsed_length > parser->user_cb_size) {
drivers/accel/habanalabs/goya/goya.c
3682
parser, (struct packet_wreg32 *) user_pkt);
drivers/accel/habanalabs/goya/goya.c
3683
parser->patched_cb_size += pkt_size;
drivers/accel/habanalabs/goya/goya.c
3710
rc = goya_validate_dma_pkt_mmu(hdev, parser,
drivers/accel/habanalabs/goya/goya.c
3713
rc = goya_validate_dma_pkt_no_mmu(hdev, parser,
drivers/accel/habanalabs/goya/goya.c
3721
parser->patched_cb_size += pkt_size;
drivers/accel/habanalabs/goya/goya.c
3740
parser->patched_cb_size += sizeof(struct packet_msg_prot) * 2;
drivers/accel/habanalabs/goya/goya.c
3746
struct hl_cs_parser *parser,
drivers/accel/habanalabs/goya/goya.c
3794
parser->job_userptr_list, &userptr) == false)) {
drivers/accel/habanalabs/goya/goya.c
3876
struct hl_cs_parser *parser)
drivers/accel/habanalabs/goya/goya.c
3883
while (cb_parsed_length < parser->user_cb_size) {
drivers/accel/habanalabs/goya/goya.c
3889
user_pkt = parser->user_cb->kernel_address + cb_parsed_length;
drivers/accel/habanalabs/goya/goya.c
3890
kernel_pkt = parser->patched_cb->kernel_address +
drivers/accel/habanalabs/goya/goya.c
3906
if (cb_parsed_length > parser->user_cb_size) {
drivers/accel/habanalabs/goya/goya.c
3915
rc = goya_patch_dma_packet(hdev, parser,
drivers/accel/habanalabs/goya/goya.c
3925
rc = goya_validate_wreg32(hdev, parser,
drivers/accel/habanalabs/goya/goya.c
3974
struct hl_cs_parser *parser)
drivers/accel/habanalabs/goya/goya.c
3986
parser->patched_cb_size = parser->user_cb_size +
drivers/accel/habanalabs/goya/goya.c
3990
parser->patched_cb_size, false, false,
drivers/accel/habanalabs/goya/goya.c
4000
parser->patched_cb = hl_cb_get(&hdev->kernel_mem_mgr, handle);
drivers/accel/habanalabs/goya/goya.c
4002
if (!parser->patched_cb) {
drivers/accel/habanalabs/goya/goya.c
4012
memcpy(parser->patched_cb->kernel_address,
drivers/accel/habanalabs/goya/goya.c
4013
parser->user_cb->kernel_address,
drivers/accel/habanalabs/goya/goya.c
4014
parser->user_cb_size);
drivers/accel/habanalabs/goya/goya.c
4016
patched_cb_size = parser->patched_cb_size;
drivers/accel/habanalabs/goya/goya.c
4019
user_cb = parser->user_cb;
drivers/accel/habanalabs/goya/goya.c
4020
parser->user_cb = parser->patched_cb;
drivers/accel/habanalabs/goya/goya.c
4021
rc = goya_validate_cb(hdev, parser, true);
drivers/accel/habanalabs/goya/goya.c
4022
parser->user_cb = user_cb;
drivers/accel/habanalabs/goya/goya.c
4025
hl_cb_put(parser->patched_cb);
drivers/accel/habanalabs/goya/goya.c
4029
if (patched_cb_size != parser->patched_cb_size) {
drivers/accel/habanalabs/goya/goya.c
4031
hl_cb_put(parser->patched_cb);
drivers/accel/habanalabs/goya/goya.c
4049
struct hl_cs_parser *parser)
drivers/accel/habanalabs/goya/goya.c
4054
rc = goya_validate_cb(hdev, parser, false);
drivers/accel/habanalabs/goya/goya.c
4060
parser->patched_cb_size, false, false,
drivers/accel/habanalabs/goya/goya.c
4068
parser->patched_cb = hl_cb_get(&hdev->kernel_mem_mgr, handle);
drivers/accel/habanalabs/goya/goya.c
4070
if (!parser->patched_cb) {
drivers/accel/habanalabs/goya/goya.c
4076
rc = goya_patch_cb(hdev, parser);
drivers/accel/habanalabs/goya/goya.c
4079
hl_cb_put(parser->patched_cb);
drivers/accel/habanalabs/goya/goya.c
4092
hl_userptr_delete_list(hdev, parser->job_userptr_list);
drivers/accel/habanalabs/goya/goya.c
4097
struct hl_cs_parser *parser)
drivers/accel/habanalabs/goya/goya.c
4107
(u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/goya/goya.c
4108
parser->user_cb_size,
drivers/accel/habanalabs/goya/goya.c
4114
(u64) (uintptr_t) parser->user_cb,
drivers/accel/habanalabs/goya/goya.c
4115
parser->user_cb_size,
drivers/accel/habanalabs/goya/goya.c
4122
parser->user_cb, parser->user_cb_size);
drivers/accel/habanalabs/goya/goya.c
4127
int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser)
drivers/accel/habanalabs/goya/goya.c
4131
if (parser->queue_type == QUEUE_TYPE_INT)
drivers/accel/habanalabs/goya/goya.c
4132
return goya_parse_cb_no_ext_queue(hdev, parser);
drivers/accel/habanalabs/goya/goya.c
4135
return goya_parse_cb_mmu(hdev, parser);
drivers/accel/habanalabs/goya/goya.c
4137
return goya_parse_cb_no_mmu(hdev, parser);
drivers/accel/habanalabs/goya/goyaP.h
235
int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser);
drivers/bus/fsl-mc/fsl-mc-bus.c
1013
for_each_of_range(&parser, &range) {
drivers/bus/fsl-mc/fsl-mc-bus.c
991
struct of_range_parser parser;
drivers/bus/fsl-mc/fsl-mc-bus.c
994
of_range_parser_init(&parser, dev->of_node);
drivers/bus/fsl-mc/fsl-mc-bus.c
995
*num_ranges = of_range_count(&parser);
drivers/bus/imx-weim.c
113
if (of_range_parser_init(&parser, np))
drivers/bus/imx-weim.c
116
for_each_of_range(&parser, &range) {
drivers/bus/imx-weim.c
93
struct of_range_parser parser;
drivers/bus/mvebu-mbus.c
1190
struct of_range_parser parser;
drivers/bus/mvebu-mbus.c
1193
ret = of_range_parser_init(&parser, np);
drivers/bus/mvebu-mbus.c
1197
for_each_of_range(&parser, &range) {
drivers/bus/ti-sysc.c
664
struct of_range_parser parser;
drivers/bus/ti-sysc.c
668
error = of_range_parser_init(&parser, np);
drivers/bus/ti-sysc.c
672
for_each_of_range(&parser, &range) {
drivers/bus/uniphier-system-bus.c
179
struct of_range_parser parser;
drivers/bus/uniphier-system-bus.c
193
ret = of_range_parser_init(&parser, dev->of_node);
drivers/bus/uniphier-system-bus.c
197
for_each_of_range(&parser, &range) {
drivers/firmware/efi/sysfb_efi.c
371
struct of_pci_range_parser parser;
drivers/firmware/efi/sysfb_efi.c
375
err = of_pci_range_parser_init(&parser, np);
drivers/firmware/efi/sysfb_efi.c
381
for_each_of_pci_range(&parser, &range)
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1387
static void amdgpu_cs_parser_fini(struct amdgpu_cs_parser *parser)
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1391
amdgpu_sync_free(&parser->sync);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1392
drm_exec_fini(&parser->exec);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1394
for (i = 0; i < parser->num_post_deps; i++) {
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1395
drm_syncobj_put(parser->post_deps[i].syncobj);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1396
kfree(parser->post_deps[i].chain);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1398
kfree(parser->post_deps);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1400
dma_fence_put(parser->fence);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1402
if (parser->ctx)
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1403
amdgpu_ctx_put(parser->ctx);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1404
if (parser->bo_list)
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1405
amdgpu_bo_list_put(parser->bo_list);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1407
for (i = 0; i < parser->nchunks; i++)
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1408
kvfree(parser->chunks[i].kdata);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1409
kvfree(parser->chunks);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1410
for (i = 0; i < parser->gang_size; ++i) {
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1411
if (parser->jobs[i])
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1412
amdgpu_job_free(parser->jobs[i]);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1414
amdgpu_bo_unref(&parser->uf_bo);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1420
struct amdgpu_cs_parser parser;
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1429
r = amdgpu_cs_parser_init(&parser, adev, filp, data);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1435
r = amdgpu_cs_pass1(&parser, data);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1439
r = amdgpu_cs_pass2(&parser);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1443
r = amdgpu_cs_parser_bos(&parser, data);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1452
r = amdgpu_cs_patch_jobs(&parser);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1456
r = amdgpu_cs_vm_handling(&parser);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1460
r = amdgpu_cs_sync_rings(&parser);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1464
trace_amdgpu_cs_ibs(&parser);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1466
r = amdgpu_cs_submit(&parser, data);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1470
amdgpu_cs_parser_fini(&parser);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1474
mutex_unlock(&parser.bo_list->bo_list_mutex);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1477
amdgpu_cs_parser_fini(&parser);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1779
int amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser,
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1783
struct amdgpu_fpriv *fpriv = parser->filp->driver_priv;
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
1799
if (dma_resv_locking_ctx((*bo)->tbo.base.resv) != &parser->exec.ticket)
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.h
84
int amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser,
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
564
int amdgpu_jpeg_dec_parse_cs(struct amdgpu_cs_parser *parser,
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
569
struct amdgpu_device *adev = parser->adev;
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h
180
int amdgpu_jpeg_dec_parse_cs(struct amdgpu_cs_parser *parser,
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
1079
int amdgpu_uvd_ring_parse_cs(struct amdgpu_cs_parser *parser,
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
1101
ctx.parser = parser;
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
1106
if (!parser->adev->uvd.address_64_bit) {
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
589
r = amdgpu_cs_find_mapping(ctx->parser, addr, &bo, &mapping);
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
595
if (!ctx->parser->adev->uvd.address_64_bit) {
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
820
struct amdgpu_device *adev = ctx->parser->adev;
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
862
adev->uvd.filp[i] = ctx->parser->filp;
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
880
if (adev->uvd.filp[i] != ctx->parser->filp) {
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
922
r = amdgpu_cs_find_mapping(ctx->parser, addr, &bo, &mapping);
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
960
if (!ctx->parser->adev->uvd.address_64_bit) {
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
968
(start >> 28) != (ctx->parser->adev->uvd.inst->gpu_addr >> 28)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
98
struct amdgpu_cs_parser *parser;
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h
86
int amdgpu_uvd_ring_parse_cs(struct amdgpu_cs_parser *parser,
drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c
38
static int jpeg_v1_dec_ring_parse_cs(struct amdgpu_cs_parser *parser,
drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c
633
static int jpeg_v1_dec_ring_parse_cs(struct amdgpu_cs_parser *parser,
drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c
639
struct amdgpu_device *adev = parser->adev;
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
2050
static int vcn_v1_0_validate_bo(struct amdgpu_cs_parser *parser,
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
2055
struct amdgpu_fpriv *fpriv = parser->filp->driver_priv;
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
2056
struct amdgpu_device *adev = parser->adev;
drivers/gpu/drm/radeon/radeon.h
1687
int radeon_uvd_cs_parse(struct radeon_cs_parser *parser);
drivers/gpu/drm/radeon/radeon_cs.c
415
static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error)
drivers/gpu/drm/radeon/radeon_cs.c
432
list_sort(NULL, &parser->validated, cmp_size_smaller_first);
drivers/gpu/drm/radeon/radeon_cs.c
433
list_for_each_entry(reloc, &parser->validated, list) {
drivers/gpu/drm/radeon/radeon_cs.c
435
&parser->ib.fence->base,
drivers/gpu/drm/radeon/radeon_cs.c
442
drm_exec_fini(&parser->exec);
drivers/gpu/drm/radeon/radeon_cs.c
444
if (parser->relocs != NULL) {
drivers/gpu/drm/radeon/radeon_cs.c
445
for (i = 0; i < parser->nrelocs; i++) {
drivers/gpu/drm/radeon/radeon_cs.c
446
struct radeon_bo *bo = parser->relocs[i].robj;
drivers/gpu/drm/radeon/radeon_cs.c
453
kfree(parser->track);
drivers/gpu/drm/radeon/radeon_cs.c
454
kvfree(parser->relocs);
drivers/gpu/drm/radeon/radeon_cs.c
455
kvfree(parser->vm_bos);
drivers/gpu/drm/radeon/radeon_cs.c
456
for (i = 0; i < parser->nchunks; i++)
drivers/gpu/drm/radeon/radeon_cs.c
457
kvfree(parser->chunks[i].kdata);
drivers/gpu/drm/radeon/radeon_cs.c
458
kvfree(parser->chunks);
drivers/gpu/drm/radeon/radeon_cs.c
459
kvfree(parser->chunks_array);
drivers/gpu/drm/radeon/radeon_cs.c
460
radeon_ib_free(parser->rdev, &parser->ib);
drivers/gpu/drm/radeon/radeon_cs.c
461
radeon_ib_free(parser->rdev, &parser->const_ib);
drivers/gpu/drm/radeon/radeon_cs.c
465
struct radeon_cs_parser *parser)
drivers/gpu/drm/radeon/radeon_cs.c
469
if (parser->chunk_ib == NULL)
drivers/gpu/drm/radeon/radeon_cs.c
472
if (parser->cs_flags & RADEON_CS_USE_VM)
drivers/gpu/drm/radeon/radeon_cs.c
475
r = radeon_cs_parse(rdev, parser->ring, parser);
drivers/gpu/drm/radeon/radeon_cs.c
476
if (r || parser->parser_error) {
drivers/gpu/drm/radeon/radeon_cs.c
481
r = radeon_cs_sync_rings(parser);
drivers/gpu/drm/radeon/radeon_cs.c
488
if (parser->ring == R600_RING_TYPE_UVD_INDEX)
drivers/gpu/drm/radeon/radeon_cs.c
490
else if ((parser->ring == TN_RING_TYPE_VCE1_INDEX) ||
drivers/gpu/drm/radeon/radeon_cs.c
491
(parser->ring == TN_RING_TYPE_VCE2_INDEX))
drivers/gpu/drm/radeon/radeon_cs.c
494
r = radeon_ib_schedule(rdev, &parser->ib, NULL, true);
drivers/gpu/drm/radeon/radeon_cs.c
551
struct radeon_cs_parser *parser)
drivers/gpu/drm/radeon/radeon_cs.c
553
struct radeon_fpriv *fpriv = parser->filp->driver_priv;
drivers/gpu/drm/radeon/radeon_cs.c
557
if (parser->chunk_ib == NULL)
drivers/gpu/drm/radeon/radeon_cs.c
559
if ((parser->cs_flags & RADEON_CS_USE_VM) == 0)
drivers/gpu/drm/radeon/radeon_cs.c
562
if (parser->const_ib.length_dw) {
drivers/gpu/drm/radeon/radeon_cs.c
563
r = radeon_ring_ib_parse(rdev, parser->ring, &parser->const_ib);
drivers/gpu/drm/radeon/radeon_cs.c
569
r = radeon_ring_ib_parse(rdev, parser->ring, &parser->ib);
drivers/gpu/drm/radeon/radeon_cs.c
574
if (parser->ring == R600_RING_TYPE_UVD_INDEX)
drivers/gpu/drm/radeon/radeon_cs.c
578
r = radeon_bo_vm_update_pte(parser, vm);
drivers/gpu/drm/radeon/radeon_cs.c
583
r = radeon_cs_sync_rings(parser);
drivers/gpu/drm/radeon/radeon_cs.c
591
(parser->chunk_const_ib != NULL)) {
drivers/gpu/drm/radeon/radeon_cs.c
592
r = radeon_ib_schedule(rdev, &parser->ib, &parser->const_ib, true);
drivers/gpu/drm/radeon/radeon_cs.c
594
r = radeon_ib_schedule(rdev, &parser->ib, NULL, true);
drivers/gpu/drm/radeon/radeon_cs.c
612
static int radeon_cs_ib_fill(struct radeon_device *rdev, struct radeon_cs_parser *parser)
drivers/gpu/drm/radeon/radeon_cs.c
618
if (parser->chunk_ib == NULL)
drivers/gpu/drm/radeon/radeon_cs.c
621
if (parser->cs_flags & RADEON_CS_USE_VM) {
drivers/gpu/drm/radeon/radeon_cs.c
622
struct radeon_fpriv *fpriv = parser->filp->driver_priv;
drivers/gpu/drm/radeon/radeon_cs.c
626
(parser->chunk_const_ib != NULL)) {
drivers/gpu/drm/radeon/radeon_cs.c
627
ib_chunk = parser->chunk_const_ib;
drivers/gpu/drm/radeon/radeon_cs.c
632
r = radeon_ib_get(rdev, parser->ring, &parser->const_ib,
drivers/gpu/drm/radeon/radeon_cs.c
638
parser->const_ib.is_const_ib = true;
drivers/gpu/drm/radeon/radeon_cs.c
639
parser->const_ib.length_dw = ib_chunk->length_dw;
drivers/gpu/drm/radeon/radeon_cs.c
640
if (copy_from_user(parser->const_ib.ptr,
drivers/gpu/drm/radeon/radeon_cs.c
646
ib_chunk = parser->chunk_ib;
drivers/gpu/drm/radeon/radeon_cs.c
652
ib_chunk = parser->chunk_ib;
drivers/gpu/drm/radeon/radeon_cs.c
654
r = radeon_ib_get(rdev, parser->ring, &parser->ib,
drivers/gpu/drm/radeon/radeon_cs.c
660
parser->ib.length_dw = ib_chunk->length_dw;
drivers/gpu/drm/radeon/radeon_cs.c
662
memcpy(parser->ib.ptr, ib_chunk->kdata, ib_chunk->length_dw * 4);
drivers/gpu/drm/radeon/radeon_cs.c
663
else if (copy_from_user(parser->ib.ptr, ib_chunk->user_ptr, ib_chunk->length_dw * 4))
drivers/gpu/drm/radeon/radeon_cs.c
671
struct radeon_cs_parser parser;
drivers/gpu/drm/radeon/radeon_cs.c
687
memset(&parser, 0, sizeof(struct radeon_cs_parser));
drivers/gpu/drm/radeon/radeon_cs.c
688
parser.filp = filp;
drivers/gpu/drm/radeon/radeon_cs.c
689
parser.rdev = rdev;
drivers/gpu/drm/radeon/radeon_cs.c
690
parser.dev = rdev->dev;
drivers/gpu/drm/radeon/radeon_cs.c
691
parser.family = rdev->family;
drivers/gpu/drm/radeon/radeon_cs.c
692
r = radeon_cs_parser_init(&parser, data);
drivers/gpu/drm/radeon/radeon_cs.c
695
radeon_cs_parser_fini(&parser, r);
drivers/gpu/drm/radeon/radeon_cs.c
701
r = radeon_cs_ib_fill(rdev, &parser);
drivers/gpu/drm/radeon/radeon_cs.c
703
r = radeon_cs_parser_relocs(&parser);
drivers/gpu/drm/radeon/radeon_cs.c
709
radeon_cs_parser_fini(&parser, r);
drivers/gpu/drm/radeon/radeon_cs.c
715
trace_radeon_cs(&parser);
drivers/gpu/drm/radeon/radeon_cs.c
717
r = radeon_cs_ib_chunk(rdev, &parser);
drivers/gpu/drm/radeon/radeon_cs.c
721
r = radeon_cs_ib_vm_chunk(rdev, &parser);
drivers/gpu/drm/radeon/radeon_cs.c
726
radeon_cs_parser_fini(&parser, r);
drivers/hid/hid-core.c
1261
struct hid_parser *parser;
drivers/hid/hid-core.c
1269
static int (*dispatch_type[])(struct hid_parser *parser,
drivers/hid/hid-core.c
1312
parser = vzalloc(sizeof(struct hid_parser));
drivers/hid/hid-core.c
1313
if (!parser) {
drivers/hid/hid-core.c
1318
parser->device = device;
drivers/hid/hid-core.c
1341
if (dispatch_type[item.type](parser, &item)) {
drivers/hid/hid-core.c
1349
if (parser->collection_stack_ptr) {
drivers/hid/hid-core.c
1353
if (parser->local.delimiter_depth) {
drivers/hid/hid-core.c
1364
kfree(parser->collection_stack);
drivers/hid/hid-core.c
1365
vfree(parser);
drivers/hid/hid-core.c
1375
kfree(parser->collection_stack);
drivers/hid/hid-core.c
1377
vfree(parser);
drivers/hid/hid-core.c
151
static int open_collection(struct hid_parser *parser, unsigned type)
drivers/hid/hid-core.c
157
usage = parser->local.usage[0];
drivers/hid/hid-core.c
159
if (parser->collection_stack_ptr == parser->collection_stack_size) {
drivers/hid/hid-core.c
161
unsigned int new_size = parser->collection_stack_size +
drivers/hid/hid-core.c
164
collection_stack = krealloc(parser->collection_stack,
drivers/hid/hid-core.c
170
parser->collection_stack = collection_stack;
drivers/hid/hid-core.c
171
parser->collection_stack_size = new_size;
drivers/hid/hid-core.c
174
if (parser->device->maxcollection == parser->device->collection_size) {
drivers/hid/hid-core.c
177
parser->device->collection_size,
drivers/hid/hid-core.c
181
hid_err(parser->device, "failed to reallocate collection array\n");
drivers/hid/hid-core.c
184
memcpy(collection, parser->device->collection,
drivers/hid/hid-core.c
186
parser->device->collection_size);
drivers/hid/hid-core.c
187
memset(collection + parser->device->collection_size, 0,
drivers/hid/hid-core.c
189
parser->device->collection_size);
drivers/hid/hid-core.c
190
kfree(parser->device->collection);
drivers/hid/hid-core.c
191
parser->device->collection = collection;
drivers/hid/hid-core.c
192
parser->device->collection_size *= 2;
drivers/hid/hid-core.c
195
parser->collection_stack[parser->collection_stack_ptr++] =
drivers/hid/hid-core.c
196
parser->device->maxcollection;
drivers/hid/hid-core.c
198
collection_index = parser->device->maxcollection++;
drivers/hid/hid-core.c
199
collection = parser->device->collection + collection_index;
drivers/hid/hid-core.c
202
collection->level = parser->collection_stack_ptr - 1;
drivers/hid/hid-core.c
204
parser->collection_stack[collection->level - 1];
drivers/hid/hid-core.c
207
parser->device->maxapplication++;
drivers/hid/hid-core.c
216
static int close_collection(struct hid_parser *parser)
drivers/hid/hid-core.c
218
if (!parser->collection_stack_ptr) {
drivers/hid/hid-core.c
219
hid_err(parser->device, "collection stack underflow\n");
drivers/hid/hid-core.c
222
parser->collection_stack_ptr--;
drivers/hid/hid-core.c
231
static unsigned hid_lookup_collection(struct hid_parser *parser, unsigned type)
drivers/hid/hid-core.c
233
struct hid_collection *collection = parser->device->collection;
drivers/hid/hid-core.c
236
for (n = parser->collection_stack_ptr - 1; n >= 0; n--) {
drivers/hid/hid-core.c
237
unsigned index = parser->collection_stack[n];
drivers/hid/hid-core.c
249
static void complete_usage(struct hid_parser *parser, unsigned int index)
drivers/hid/hid-core.c
251
parser->local.usage[index] &= 0xFFFF;
drivers/hid/hid-core.c
252
parser->local.usage[index] |=
drivers/hid/hid-core.c
253
(parser->global.usage_page & 0xFFFF) << 16;
drivers/hid/hid-core.c
260
static int hid_add_usage(struct hid_parser *parser, unsigned usage, u8 size)
drivers/hid/hid-core.c
262
if (parser->local.usage_index >= HID_MAX_USAGES) {
drivers/hid/hid-core.c
263
hid_err(parser->device, "usage index exceeded\n");
drivers/hid/hid-core.c
266
parser->local.usage[parser->local.usage_index] = usage;
drivers/hid/hid-core.c
273
complete_usage(parser, parser->local.usage_index);
drivers/hid/hid-core.c
275
parser->local.usage_size[parser->local.usage_index] = size;
drivers/hid/hid-core.c
276
parser->local.collection_index[parser->local.usage_index] =
drivers/hid/hid-core.c
277
parser->collection_stack_ptr ?
drivers/hid/hid-core.c
278
parser->collection_stack[parser->collection_stack_ptr - 1] : 0;
drivers/hid/hid-core.c
279
parser->local.usage_index++;
drivers/hid/hid-core.c
287
static int hid_add_field(struct hid_parser *parser, unsigned report_type, unsigned flags)
drivers/hid/hid-core.c
297
application = hid_lookup_collection(parser, HID_COLLECTION_APPLICATION);
drivers/hid/hid-core.c
299
report = hid_register_report(parser->device, report_type,
drivers/hid/hid-core.c
300
parser->global.report_id, application);
drivers/hid/hid-core.c
302
hid_err(parser->device, "hid_register_report failed\n");
drivers/hid/hid-core.c
307
if ((parser->global.logical_minimum < 0 &&
drivers/hid/hid-core.c
308
parser->global.logical_maximum <
drivers/hid/hid-core.c
309
parser->global.logical_minimum) ||
drivers/hid/hid-core.c
310
(parser->global.logical_minimum >= 0 &&
drivers/hid/hid-core.c
311
(__u32)parser->global.logical_maximum <
drivers/hid/hid-core.c
312
(__u32)parser->global.logical_minimum)) {
drivers/hid/hid-core.c
314
parser->global.logical_minimum,
drivers/hid/hid-core.c
315
parser->global.logical_maximum);
drivers/hid/hid-core.c
320
report->size += parser->global.report_size * parser->global.report_count;
drivers/hid/hid-core.c
322
if (parser->device->ll_driver->max_buffer_size)
drivers/hid/hid-core.c
323
max_buffer_size = parser->device->ll_driver->max_buffer_size;
drivers/hid/hid-core.c
327
hid_err(parser->device, "report is too long\n");
drivers/hid/hid-core.c
331
if (!parser->local.usage_index) /* Ignore padding fields */
drivers/hid/hid-core.c
334
usages = max_t(unsigned, parser->local.usage_index,
drivers/hid/hid-core.c
335
parser->global.report_count);
drivers/hid/hid-core.c
341
field->physical = hid_lookup_collection(parser, HID_COLLECTION_PHYSICAL);
drivers/hid/hid-core.c
342
field->logical = hid_lookup_collection(parser, HID_COLLECTION_LOGICAL);
drivers/hid/hid-core.c
348
if (i >= parser->local.usage_index)
drivers/hid/hid-core.c
349
j = parser->local.usage_index - 1;
drivers/hid/hid-core.c
350
field->usage[i].hid = parser->local.usage[j];
drivers/hid/hid-core.c
352
parser->local.collection_index[j];
drivers/hid/hid-core.c
361
field->report_size = parser->global.report_size;
drivers/hid/hid-core.c
362
field->report_count = parser->global.report_count;
drivers/hid/hid-core.c
363
field->logical_minimum = parser->global.logical_minimum;
drivers/hid/hid-core.c
364
field->logical_maximum = parser->global.logical_maximum;
drivers/hid/hid-core.c
365
field->physical_minimum = parser->global.physical_minimum;
drivers/hid/hid-core.c
366
field->physical_maximum = parser->global.physical_maximum;
drivers/hid/hid-core.c
367
field->unit_exponent = parser->global.unit_exponent;
drivers/hid/hid-core.c
368
field->unit = parser->global.unit;
drivers/hid/hid-core.c
401
static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
drivers/hid/hid-core.c
407
if (parser->global_stack_ptr == HID_GLOBAL_STACK_SIZE) {
drivers/hid/hid-core.c
408
hid_err(parser->device, "global environment stack overflow\n");
drivers/hid/hid-core.c
412
memcpy(parser->global_stack + parser->global_stack_ptr++,
drivers/hid/hid-core.c
413
&parser->global, sizeof(struct hid_global));
drivers/hid/hid-core.c
418
if (!parser->global_stack_ptr) {
drivers/hid/hid-core.c
419
hid_err(parser->device, "global environment stack underflow\n");
drivers/hid/hid-core.c
423
memcpy(&parser->global, parser->global_stack +
drivers/hid/hid-core.c
424
--parser->global_stack_ptr, sizeof(struct hid_global));
drivers/hid/hid-core.c
428
parser->global.usage_page = item_udata(item);
drivers/hid/hid-core.c
432
parser->global.logical_minimum = item_sdata(item);
drivers/hid/hid-core.c
436
if (parser->global.logical_minimum < 0)
drivers/hid/hid-core.c
437
parser->global.logical_maximum = item_sdata(item);
drivers/hid/hid-core.c
439
parser->global.logical_maximum = item_udata(item);
drivers/hid/hid-core.c
443
parser->global.physical_minimum = item_sdata(item);
drivers/hid/hid-core.c
447
if (parser->global.physical_minimum < 0)
drivers/hid/hid-core.c
448
parser->global.physical_maximum = item_sdata(item);
drivers/hid/hid-core.c
450
parser->global.physical_maximum = item_udata(item);
drivers/hid/hid-core.c
460
parser->global.unit_exponent = snto32(raw_value, 4);
drivers/hid/hid-core.c
462
parser->global.unit_exponent = raw_value;
drivers/hid/hid-core.c
466
parser->global.unit = item_udata(item);
drivers/hid/hid-core.c
470
parser->global.report_size = item_udata(item);
drivers/hid/hid-core.c
471
if (parser->global.report_size > 256) {
drivers/hid/hid-core.c
472
hid_err(parser->device, "invalid report_size %d\n",
drivers/hid/hid-core.c
473
parser->global.report_size);
drivers/hid/hid-core.c
479
parser->global.report_count = item_udata(item);
drivers/hid/hid-core.c
480
if (parser->global.report_count > HID_MAX_USAGES) {
drivers/hid/hid-core.c
481
hid_err(parser->device, "invalid report_count %d\n",
drivers/hid/hid-core.c
482
parser->global.report_count);
drivers/hid/hid-core.c
488
parser->global.report_id = item_udata(item);
drivers/hid/hid-core.c
489
if (parser->global.report_id == 0 ||
drivers/hid/hid-core.c
490
parser->global.report_id >= HID_MAX_IDS) {
drivers/hid/hid-core.c
491
hid_err(parser->device, "report_id %u is invalid\n",
drivers/hid/hid-core.c
492
parser->global.report_id);
drivers/hid/hid-core.c
498
hid_err(parser->device, "unknown global tag 0x%x\n", item->tag);
drivers/hid/hid-core.c
507
static int hid_parser_local(struct hid_parser *parser, struct hid_item *item)
drivers/hid/hid-core.c
525
if (parser->local.delimiter_depth != 0) {
drivers/hid/hid-core.c
526
hid_err(parser->device, "nested delimiters\n");
drivers/hid/hid-core.c
529
parser->local.delimiter_depth++;
drivers/hid/hid-core.c
530
parser->local.delimiter_branch++;
drivers/hid/hid-core.c
532
if (parser->local.delimiter_depth < 1) {
drivers/hid/hid-core.c
533
hid_err(parser->device, "bogus close delimiter\n");
drivers/hid/hid-core.c
536
parser->local.delimiter_depth--;
drivers/hid/hid-core.c
542
if (parser->local.delimiter_branch > 1) {
drivers/hid/hid-core.c
547
return hid_add_usage(parser, data, item->size);
drivers/hid/hid-core.c
551
if (parser->local.delimiter_branch > 1) {
drivers/hid/hid-core.c
556
parser->local.usage_minimum = data;
drivers/hid/hid-core.c
561
if (parser->local.delimiter_branch > 1) {
drivers/hid/hid-core.c
566
count = data - parser->local.usage_minimum;
drivers/hid/hid-core.c
567
if (count + parser->local.usage_index >= HID_MAX_USAGES) {
drivers/hid/hid-core.c
572
if (dev_name(&parser->device->dev))
drivers/hid/hid-core.c
573
hid_warn(parser->device,
drivers/hid/hid-core.c
575
data = HID_MAX_USAGES - parser->local.usage_index +
drivers/hid/hid-core.c
576
parser->local.usage_minimum - 1;
drivers/hid/hid-core.c
578
hid_err(parser->device,
drivers/hid/hid-core.c
584
for (n = parser->local.usage_minimum; n <= data; n++)
drivers/hid/hid-core.c
585
if (hid_add_usage(parser, n, item->size)) {
drivers/hid/hid-core.c
606
static void hid_concatenate_last_usage_page(struct hid_parser *parser)
drivers/hid/hid-core.c
612
if (!parser->local.usage_index)
drivers/hid/hid-core.c
615
usage_page = parser->global.usage_page;
drivers/hid/hid-core.c
621
for (i = parser->local.usage_index - 1; i >= 0; i--) {
drivers/hid/hid-core.c
622
if (parser->local.usage_size[i] > 2)
drivers/hid/hid-core.c
626
current_page = parser->local.usage[i] >> 16;
drivers/hid/hid-core.c
630
complete_usage(parser, i);
drivers/hid/hid-core.c
638
static int hid_parser_main(struct hid_parser *parser, struct hid_item *item)
drivers/hid/hid-core.c
643
hid_concatenate_last_usage_page(parser);
drivers/hid/hid-core.c
649
ret = open_collection(parser, data & 0xff);
drivers/hid/hid-core.c
652
ret = close_collection(parser);
drivers/hid/hid-core.c
655
ret = hid_add_field(parser, HID_INPUT_REPORT, data);
drivers/hid/hid-core.c
658
ret = hid_add_field(parser, HID_OUTPUT_REPORT, data);
drivers/hid/hid-core.c
661
ret = hid_add_field(parser, HID_FEATURE_REPORT, data);
drivers/hid/hid-core.c
666
hid_warn_ratelimited(parser->device, "reserved main item tag 0x%x\n", item->tag);
drivers/hid/hid-core.c
668
hid_warn_ratelimited(parser->device, "unknown main item tag 0x%x\n", item->tag);
drivers/hid/hid-core.c
672
memset(&parser->local, 0, sizeof(parser->local)); /* Reset the local parser environment */
drivers/hid/hid-core.c
681
static int hid_parser_reserved(struct hid_parser *parser, struct hid_item *item)
drivers/hid/hid-core.c
834
static void hid_scan_input_usage(struct hid_parser *parser, u32 usage)
drivers/hid/hid-core.c
836
struct hid_device *hid = parser->device;
drivers/hid/hid-core.c
842
static void hid_scan_feature_usage(struct hid_parser *parser, u32 usage)
drivers/hid/hid-core.c
844
if (usage == 0xff0000c5 && parser->global.report_count == 256 &&
drivers/hid/hid-core.c
845
parser->global.report_size == 8)
drivers/hid/hid-core.c
846
parser->scan_flags |= HID_SCAN_FLAG_MT_WIN_8;
drivers/hid/hid-core.c
848
if (usage == 0xff0000c6 && parser->global.report_count == 1 &&
drivers/hid/hid-core.c
849
parser->global.report_size == 8)
drivers/hid/hid-core.c
850
parser->scan_flags |= HID_SCAN_FLAG_MT_WIN_8;
drivers/hid/hid-core.c
853
static void hid_scan_collection(struct hid_parser *parser, unsigned type)
drivers/hid/hid-core.c
855
struct hid_device *hid = parser->device;
drivers/hid/hid-core.c
858
if (((parser->global.usage_page << 16) == HID_UP_SENSOR) &&
drivers/hid/hid-core.c
868
if ((parser->global.usage_page << 16) == HID_UP_GENDESK)
drivers/hid/hid-core.c
869
for (i = 0; i < parser->local.usage_index; i++)
drivers/hid/hid-core.c
870
if (parser->local.usage[i] == HID_GD_POINTER)
drivers/hid/hid-core.c
871
parser->scan_flags |= HID_SCAN_FLAG_GD_POINTER;
drivers/hid/hid-core.c
873
if ((parser->global.usage_page << 16) >= HID_UP_MSVENDOR)
drivers/hid/hid-core.c
874
parser->scan_flags |= HID_SCAN_FLAG_VENDOR_SPECIFIC;
drivers/hid/hid-core.c
876
if ((parser->global.usage_page << 16) == HID_UP_GOOGLEVENDOR)
drivers/hid/hid-core.c
877
for (i = 0; i < parser->local.usage_index; i++)
drivers/hid/hid-core.c
878
if (parser->local.usage[i] ==
drivers/hid/hid-core.c
880
parser->device->group =
drivers/hid/hid-core.c
884
static int hid_scan_main(struct hid_parser *parser, struct hid_item *item)
drivers/hid/hid-core.c
889
hid_concatenate_last_usage_page(parser);
drivers/hid/hid-core.c
895
hid_scan_collection(parser, data & 0xff);
drivers/hid/hid-core.c
903
for (i = 0; i < parser->local.usage_index; i++)
drivers/hid/hid-core.c
904
hid_scan_input_usage(parser, parser->local.usage[i]);
drivers/hid/hid-core.c
909
for (i = 0; i < parser->local.usage_index; i++)
drivers/hid/hid-core.c
910
hid_scan_feature_usage(parser, parser->local.usage[i]);
drivers/hid/hid-core.c
915
memset(&parser->local, 0, sizeof(parser->local));
drivers/hid/hid-core.c
927
struct hid_parser *parser;
drivers/hid/hid-core.c
931
static int (*dispatch_type[])(struct hid_parser *parser,
drivers/hid/hid-core.c
939
parser = vzalloc(sizeof(struct hid_parser));
drivers/hid/hid-core.c
940
if (!parser)
drivers/hid/hid-core.c
943
parser->device = hid;
drivers/hid/hid-core.c
961
dispatch_type[item.type](parser, &item);
drivers/hid/hid-core.c
966
if ((parser->scan_flags & HID_SCAN_FLAG_MT_WIN_8) &&
drivers/hid/hid-core.c
979
if ((parser->scan_flags & HID_SCAN_FLAG_VENDOR_SPECIFIC)
drivers/hid/hid-core.c
980
&& (parser->scan_flags & HID_SCAN_FLAG_GD_POINTER))
drivers/hid/hid-core.c
989
kfree(parser->collection_stack);
drivers/hid/hid-core.c
990
vfree(parser);
drivers/hv/vmbus_drv.c
2657
struct of_range_parser parser;
drivers/hv/vmbus_drv.c
2663
ret = of_range_parser_init(&parser, np);
drivers/hv/vmbus_drv.c
2672
for_each_of_range(&parser, &range) {
drivers/i3c/master/mipi-i3c-hci/ext_caps.c
178
int (*parser)(struct i3c_hci *hci, void __iomem *base);
drivers/i3c/master/mipi-i3c-hci/ext_caps.c
182
{ .id = (_id), .parser = (_parser), \
drivers/i3c/master/mipi-i3c-hci/ext_caps.c
214
int (*parser)(struct i3c_hci *hci, void __iomem *base);
drivers/i3c/master/mipi-i3c-hci/ext_caps.c
219
.parser = (hci_extcap_vendor_##_vendor), \
drivers/i3c/master/mipi-i3c-hci/ext_caps.c
252
return vendor_cap_entry->parser(hci, base);
drivers/i3c/master/mipi-i3c-hci/ext_caps.c
303
err = cap_entry->parser(hci, curr_cap);
drivers/media/platform/ti/vpe/vip.c
1068
struct vip_parser_data *parser = dev->parser;
drivers/media/platform/ti/vpe/vip.c
1072
u32 vip_irq_stat = reg_read(parser, VIP_PARSER_FIQ_STATUS);
drivers/media/platform/ti/vpe/vip.c
1078
reg_write(parser, VIP_PARSER_FIQ_CLR, vip_irq_stat);
drivers/media/platform/ti/vpe/vip.c
1079
reg_write(parser, VIP_PARSER_FIQ_CLR, 0x0);
drivers/media/platform/ti/vpe/vip.c
2722
struct vip_parser_data *parser = dev->parser;
drivers/media/platform/ti/vpe/vip.c
2749
reg_write(parser, VIP_PARSER_CROP_H_PORT(port->port_id), hcrop);
drivers/media/platform/ti/vpe/vip.c
2755
reg_write(parser, VIP_PARSER_CROP_V_PORT(port->port_id), vcrop);
drivers/media/platform/ti/vpe/vip.c
2763
struct vip_parser_data *parser = dev->parser;
drivers/media/platform/ti/vpe/vip.c
2773
config0 = reg_read(parser, VIP_PARSER_PORT(port->port_id));
drivers/media/platform/ti/vpe/vip.c
2836
reg_write(parser, VIP_PARSER_PORT(port->port_id), config0);
drivers/media/platform/ti/vpe/vip.c
2848
struct vip_parser_data *parser = dev->parser;
drivers/media/platform/ti/vpe/vip.c
2850
config0 = reg_read(parser, VIP_PARSER_PORT(port->port_id));
drivers/media/platform/ti/vpe/vip.c
2859
reg_write(parser, VIP_PARSER_PORT(port->port_id), config0);
drivers/media/platform/ti/vpe/vip.c
2866
struct vip_parser_data *parser = dev->parser;
drivers/media/platform/ti/vpe/vip.c
2868
config0 = reg_read(parser, VIP_PARSER_PORT(port->port_id));
drivers/media/platform/ti/vpe/vip.c
2875
reg_write(parser, VIP_PARSER_PORT(port->port_id), config0);
drivers/media/platform/ti/vpe/vip.c
2882
struct vip_parser_data *parser = dev->parser;
drivers/media/platform/ti/vpe/vip.c
2884
config0 = reg_read(parser, VIP_PARSER_STOP_IMM_PORT(port->port_id));
drivers/media/platform/ti/vpe/vip.c
2891
reg_write(parser, VIP_PARSER_STOP_IMM_PORT(port->port_id), config0);
drivers/media/platform/ti/vpe/vip.c
3459
struct vip_parser_data *parser;
drivers/media/platform/ti/vpe/vip.c
3491
parser = devm_kzalloc(&pdev->dev, sizeof(*dev->parser), GFP_KERNEL);
drivers/media/platform/ti/vpe/vip.c
3492
if (!parser)
drivers/media/platform/ti/vpe/vip.c
3493
return PTR_ERR_OR_ZERO(parser);
drivers/media/platform/ti/vpe/vip.c
3495
parser->base = dev->base + (slice ? VIP_SLICE1_PARSER : VIP_SLICE0_PARSER);
drivers/media/platform/ti/vpe/vip.c
3496
if (IS_ERR(parser->base))
drivers/media/platform/ti/vpe/vip.c
3497
return PTR_ERR(parser->base);
drivers/media/platform/ti/vpe/vip.c
3499
parser->pdev = pdev;
drivers/media/platform/ti/vpe/vip.c
3500
dev->parser = parser;
drivers/media/platform/ti/vpe/vip.c
562
reg_write(port->dev->parser, VIP_PARSER_MAIN_CFG, val);
drivers/media/platform/ti/vpe/vip.c
767
struct vip_parser_data *parser = dev->parser;
drivers/media/platform/ti/vpe/vip.c
774
reg_write(parser, VIP_PARSER_FIQ_MASK, (u32)~PARSER_IRQ_MASK);
drivers/media/platform/ti/vpe/vip.c
784
struct vip_parser_data *parser = dev->parser;
drivers/media/platform/ti/vpe/vip.c
791
reg_write(parser, VIP_PARSER_FIQ_MASK, 0xffffffff);
drivers/media/platform/ti/vpe/vip.c
801
struct vip_parser_data *parser = dev->parser;
drivers/media/platform/ti/vpe/vip.c
808
reg_write(parser, VIP_PARSER_FIQ_CLR, 0xffffffff);
drivers/media/platform/ti/vpe/vip.c
809
reg_write(parser, VIP_PARSER_FIQ_CLR, 0x0);
drivers/media/platform/ti/vpe/vip.h
155
struct vip_parser_data *parser;
drivers/mtd/mtdpart.c
523
static int mtd_part_do_parse(struct mtd_part_parser *parser,
drivers/mtd/mtdpart.c
530
ret = (*parser->parse_fn)(master, &pparts->parts, data);
drivers/mtd/mtdpart.c
531
pr_debug("%s: parser %s: %i\n", master->name, parser->name, ret);
drivers/mtd/mtdpart.c
536
parser->name, master->name);
drivers/mtd/mtdpart.c
539
pparts->parser = parser;
drivers/mtd/mtdpart.c
586
struct mtd_part_parser *parser;
drivers/mtd/mtdpart.c
616
parser = mtd_part_get_compatible_parser(compat);
drivers/mtd/mtdpart.c
617
if (!parser)
drivers/mtd/mtdpart.c
619
ret = mtd_part_do_parse(parser, master, pparts, NULL);
drivers/mtd/mtdpart.c
625
mtd_part_parser_put(parser);
drivers/mtd/mtdpart.c
638
parser = mtd_part_parser_get(fixed);
drivers/mtd/mtdpart.c
639
if (!parser && !request_module("%s", fixed))
drivers/mtd/mtdpart.c
640
parser = mtd_part_parser_get(fixed);
drivers/mtd/mtdpart.c
641
if (parser) {
drivers/mtd/mtdpart.c
642
ret = mtd_part_do_parse(parser, master, pparts, NULL);
drivers/mtd/mtdpart.c
645
mtd_part_parser_put(parser);
drivers/mtd/mtdpart.c
675
struct mtd_part_parser *parser;
drivers/mtd/mtdpart.c
693
parser = mtd_part_parser_get(*types);
drivers/mtd/mtdpart.c
694
if (!parser && !request_module("%s", *types))
drivers/mtd/mtdpart.c
695
parser = mtd_part_parser_get(*types);
drivers/mtd/mtdpart.c
696
if (!parser)
drivers/mtd/mtdpart.c
698
pr_debug("%s: got parser %s\n", master->name, parser->name);
drivers/mtd/mtdpart.c
699
ret = mtd_part_do_parse(parser, master, &pparts, data);
drivers/mtd/mtdpart.c
701
mtd_part_parser_put(parser);
drivers/mtd/mtdpart.c
722
const struct mtd_part_parser *parser;
drivers/mtd/mtdpart.c
727
parser = parts->parser;
drivers/mtd/mtdpart.c
728
if (parser) {
drivers/mtd/mtdpart.c
729
if (parser->cleanup)
drivers/mtd/mtdpart.c
730
parser->cleanup(parts->parts, parts->nr_parts);
drivers/mtd/mtdpart.c
732
mtd_part_parser_put(parser);
drivers/mtd/nand/raw/nand_base.c
2516
const struct nand_op_parser *parser,
drivers/mtd/nand/raw/nand_base.c
2532
for (i = 0; i < parser->npatterns; i++) {
drivers/mtd/nand/raw/nand_base.c
2535
pattern = &parser->patterns[i];
drivers/mtd/nand/raw/nand_base.c
2556
pattern = &parser->patterns[best_pattern];
drivers/mtd/nand/raw/sunxi_nand.c
2080
const struct nand_op_parser *parser;
drivers/mtd/nand/raw/sunxi_nand.c
2086
parser = &sunxi_nfc_op_parser;
drivers/mtd/nand/raw/sunxi_nand.c
2088
parser = &sunxi_nfc_norb_op_parser;
drivers/mtd/nand/raw/sunxi_nand.c
2090
return nand_op_parser_exec_op(nand, parser, op, check_only);
drivers/net/ethernet/apm/xgene/xgene_enet_cle.c
127
enum xgene_cle_parser parser = cle->active_parser;
drivers/net/ethernet/apm/xgene/xgene_enet_cle.c
138
if ((type < PTREE_RAM) && (parser != PARSER_ALL))
drivers/net/ethernet/apm/xgene/xgene_enet_cle.c
139
port = parser;
drivers/net/ethernet/meta/fbnic/fbnic_tlv.c
516
const struct fbnic_tlv_parser *parser)
drivers/net/ethernet/meta/fbnic/fbnic_tlv.c
528
while (parser->id != msg_id) {
drivers/net/ethernet/meta/fbnic/fbnic_tlv.c
529
if (parser->id == FBNIC_TLV_MSG_ID_UNKNOWN)
drivers/net/ethernet/meta/fbnic/fbnic_tlv.c
531
parser++;
drivers/net/ethernet/meta/fbnic/fbnic_tlv.c
535
results, parser->attr);
drivers/net/ethernet/meta/fbnic/fbnic_tlv.c
539
return parser->func(opaque, results);
drivers/net/ethernet/meta/fbnic/fbnic_tlv.h
146
const struct fbnic_tlv_parser *parser);
drivers/of/address.c
265
struct of_range_parser parser;
drivers/of/address.c
268
ret = of_range_parser_init(&parser, np);
drivers/of/address.c
272
for_each_of_range(&parser, &range)
drivers/of/address.c
753
static int parser_init(struct of_pci_range_parser *parser,
drivers/of/address.c
758
parser->node = node;
drivers/of/address.c
759
parser->pna = of_n_addr_cells(node);
drivers/of/address.c
760
parser->na = of_bus_n_addr_cells(node);
drivers/of/address.c
761
parser->ns = of_bus_n_size_cells(node);
drivers/of/address.c
762
parser->dma = !strcmp(name, "dma-ranges");
drivers/of/address.c
763
parser->bus = of_match_bus(node);
drivers/of/address.c
765
parser->range = of_get_property(node, name, &rlen);
drivers/of/address.c
766
if (parser->range == NULL)
drivers/of/address.c
769
parser->end = parser->range + rlen / sizeof(__be32);
drivers/of/address.c
774
int of_pci_range_parser_init(struct of_pci_range_parser *parser,
drivers/of/address.c
777
return parser_init(parser, node, "ranges");
drivers/of/address.c
781
int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser,
drivers/of/address.c
784
return parser_init(parser, node, "dma-ranges");
drivers/of/address.c
789
struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser,
drivers/of/address.c
792
int na = parser->na;
drivers/of/address.c
793
int ns = parser->ns;
drivers/of/address.c
794
int np = parser->pna + na + ns;
drivers/of/address.c
795
int busflag_na = parser->bus->flag_cells;
drivers/of/address.c
800
if (!parser->range || parser->range + np > parser->end)
drivers/of/address.c
803
range->flags = parser->bus->get_flags(parser->range);
drivers/of/address.c
805
range->bus_addr = of_read_number(parser->range + busflag_na, na - busflag_na);
drivers/of/address.c
807
if (parser->dma)
drivers/of/address.c
808
range->cpu_addr = of_translate_dma_address(parser->node,
drivers/of/address.c
809
parser->range + na);
drivers/of/address.c
811
range->cpu_addr = of_translate_address(parser->node,
drivers/of/address.c
812
parser->range + na);
drivers/of/address.c
814
range->parent_bus_addr = of_read_number(parser->range + na, parser->pna);
drivers/of/address.c
815
range->size = of_read_number(parser->range + parser->pna + na, ns);
drivers/of/address.c
817
parser->range += np;
drivers/of/address.c
820
while (parser->range + np <= parser->end) {
drivers/of/address.c
824
flags = parser->bus->get_flags(parser->range);
drivers/of/address.c
825
bus_addr = of_read_number(parser->range + busflag_na, na - busflag_na);
drivers/of/address.c
826
if (parser->dma)
drivers/of/address.c
827
cpu_addr = of_translate_dma_address(parser->node,
drivers/of/address.c
828
parser->range + na);
drivers/of/address.c
830
cpu_addr = of_translate_address(parser->node,
drivers/of/address.c
831
parser->range + na);
drivers/of/address.c
832
size = of_read_number(parser->range + parser->pna + na, ns);
drivers/of/address.c
841
parser->range += np;
drivers/of/address.c
894
struct of_range_parser parser;
drivers/of/address.c
919
of_dma_range_parser_init(&parser, node);
drivers/of/address.c
920
for_each_of_range(&parser, &range) {
drivers/of/address.c
941
of_dma_range_parser_init(&parser, node);
drivers/of/address.c
942
for_each_of_range(&parser, &range) {
drivers/of/address.c
967
struct of_range_parser parser;
drivers/of/address.c
980
of_dma_range_parser_init(&parser, np);
drivers/of/address.c
981
for_each_of_range(&parser, &range)
drivers/of/irq.c
160
int of_imap_parser_init(struct of_imap_parser *parser, struct device_node *node,
drivers/of/irq.c
174
parser->parent_offset = of_bus_n_addr_cells(node);
drivers/of/irq.c
180
parser->parent_offset += tmp;
drivers/of/irq.c
182
if (WARN(parser->parent_offset > ARRAY_SIZE(item->child_imap),
drivers/of/irq.c
184
parser->parent_offset, ARRAY_SIZE(item->child_imap)))
drivers/of/irq.c
187
parser->imap = of_get_property(node, "interrupt-map", &imaplen);
drivers/of/irq.c
188
if (!parser->imap)
drivers/of/irq.c
191
imaplen /= sizeof(*parser->imap);
drivers/of/irq.c
192
parser->imap_end = parser->imap + imaplen;
drivers/of/irq.c
195
item->child_imap_count = parser->parent_offset;
drivers/of/irq.c
201
struct of_imap_item *of_imap_parser_one(struct of_imap_parser *parser,
drivers/of/irq.c
210
if (parser->imap + parser->parent_offset + 1 >= parser->imap_end)
drivers/of/irq.c
213
imap_parent = parser->imap + parser->parent_offset;
drivers/of/irq.c
216
parser->imap_end - imap_parent,
drivers/of/irq.c
221
for (i = 0; i < parser->parent_offset; i++)
drivers/of/irq.c
222
item->child_imap[i] = be32_to_cpu(*(parser->imap + i));
drivers/of/irq.c
224
parser->imap = imap_next;
drivers/of/unittest.c
1179
struct of_pci_range_parser parser;
drivers/of/unittest.c
1191
if (of_pci_dma_range_parser_init(&parser, np)) {
drivers/of/unittest.c
1199
for_each_of_pci_range(&parser, &range) {
drivers/of/unittest.c
1231
struct of_pci_range_parser parser;
drivers/of/unittest.c
1242
if (of_pci_dma_range_parser_init(&parser, np)) {
drivers/of/unittest.c
1250
for_each_of_pci_range(&parser, &range) {
drivers/of/unittest.c
1269
struct of_range_parser parser;
drivers/of/unittest.c
1279
if (of_range_parser_init(&parser, np)) {
drivers/of/unittest.c
1297
count = of_range_count(&parser);
drivers/of/unittest.c
1305
for_each_of_range(&parser, &range) {
drivers/of/unittest.c
1340
struct of_range_parser parser;
drivers/of/unittest.c
1349
if (of_range_parser_init(&parser, np)) {
drivers/of/unittest.c
1357
for_each_of_range(&parser, &range) {
drivers/pci/controller/pci-mvebu.c
1177
struct of_range_parser parser;
drivers/pci/controller/pci-mvebu.c
1182
if (of_pci_range_parser_init(&parser, np))
drivers/pci/controller/pci-mvebu.c
1185
for_each_of_range(&parser, &range) {
drivers/pci/controller/pci-xgene.c
531
struct of_pci_range_parser parser;
drivers/pci/controller/pci-xgene.c
535
if (of_pci_dma_range_parser_init(&parser, np)) {
drivers/pci/controller/pci-xgene.c
541
for_each_of_pci_range(&parser, &range) {
drivers/pci/controller/plda/pcie-microchip-host.c
647
struct of_range_parser parser;
drivers/pci/controller/plda/pcie-microchip-host.c
682
if (of_pci_dma_range_parser_init(&parser, dn)) {
drivers/pci/controller/plda/pcie-microchip-host.c
688
for_each_of_range(&parser, &range) {
drivers/pci/of.c
328
struct of_pci_range_parser parser;
drivers/pci/of.c
356
err = of_pci_range_parser_init(&parser, dev_node);
drivers/pci/of.c
361
for_each_of_pci_range(&parser, &range) {
drivers/pci/of.c
411
err = of_pci_dma_range_parser_init(&parser, dev_node);
drivers/pci/of.c
416
for_each_of_pci_range(&parser, &range) {
drivers/perf/amlogic/meson_g12_ddr_pmu.c
70
PMU_FORMAT_ATTR(parser, "config1:41");
include/linux/mtd/partitions.h
92
const struct mtd_part_parser *parser;
include/linux/mtd/partitions.h
95
extern int __register_mtd_parser(struct mtd_part_parser *parser,
include/linux/mtd/partitions.h
97
#define register_mtd_parser(parser) __register_mtd_parser(parser, THIS_MODULE)
include/linux/mtd/partitions.h
99
extern void deregister_mtd_parser(struct mtd_part_parser *parser);
include/linux/mtd/rawnand.h
1036
const struct nand_op_parser *parser,
include/linux/of_address.h
117
static inline int of_pci_range_parser_init(struct of_pci_range_parser *parser,
include/linux/of_address.h
123
static inline int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser,
include/linux/of_address.h
130
struct of_pci_range_parser *parser,
include/linux/of_address.h
35
#define for_each_of_pci_range(parser, range) \
include/linux/of_address.h
36
for (; of_pci_range_parser_one(parser, range);)
include/linux/of_address.h
48
static inline int of_range_count(const struct of_range_parser *parser)
include/linux/of_address.h
50
if (!parser || !parser->node || !parser->range || parser->range == parser->end)
include/linux/of_address.h
52
return (parser->end - parser->range) / (parser->na + parser->pna + parser->ns);
include/linux/of_address.h
78
extern int of_pci_range_parser_init(struct of_pci_range_parser *parser,
include/linux/of_address.h
80
extern int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser,
include/linux/of_address.h
83
struct of_pci_range_parser *parser,
include/linux/of_irq.h
124
static inline int of_imap_parser_init(struct of_imap_parser *parser,
include/linux/of_irq.h
130
static inline struct of_imap_item *of_imap_parser_one(struct of_imap_parser *parser,
include/linux/of_irq.h
35
#define for_each_of_imap_item(parser, item) \
include/linux/of_irq.h
36
for (; of_imap_parser_one(parser, item);)
include/linux/of_irq.h
76
extern int of_imap_parser_init(struct of_imap_parser *parser,
include/linux/of_irq.h
79
extern struct of_imap_item *of_imap_parser_one(struct of_imap_parser *parser,
include/sound/seq_virmidi.h
26
struct snd_midi_event *parser;
kernel/trace/ftrace.c
3957
struct trace_parser parser;
kernel/trace/ftrace.c
4693
if (trace_parser_get_init(&iter->parser, FTRACE_BUFF_MAX))
kernel/trace/ftrace.c
4729
trace_parser_put(&iter->parser);
kernel/trace/ftrace.c
4745
trace_parser_put(&iter->parser);
kernel/trace/ftrace.c
5809
struct trace_parser *parser;
kernel/trace/ftrace.c
5826
parser = &iter->parser;
kernel/trace/ftrace.c
5827
read = trace_get_user(parser, ubuf, cnt, ppos);
kernel/trace/ftrace.c
5829
if (read >= 0 && trace_parser_loaded(parser) &&
kernel/trace/ftrace.c
5830
!trace_parser_cont(parser)) {
kernel/trace/ftrace.c
5831
ret = ftrace_process_regex(iter, parser->buffer,
kernel/trace/ftrace.c
5832
parser->idx, enable);
kernel/trace/ftrace.c
5833
trace_parser_clear(parser);
kernel/trace/ftrace.c
6950
struct trace_parser *parser;
kernel/trace/ftrace.c
6959
parser = &iter->parser;
kernel/trace/ftrace.c
6960
if (trace_parser_loaded(parser)) {
kernel/trace/ftrace.c
6963
ftrace_process_regex(iter, parser->buffer,
kernel/trace/ftrace.c
6964
parser->idx, enable);
kernel/trace/ftrace.c
6967
trace_parser_put(parser);
kernel/trace/ftrace.c
7065
struct trace_parser parser;
kernel/trace/ftrace.c
7176
if (trace_parser_get_init(&fgd->parser, FTRACE_BUFF_MAX))
kernel/trace/ftrace.c
7205
trace_parser_put(&fgd->parser);
kernel/trace/ftrace.c
7280
struct trace_parser *parser;
kernel/trace/ftrace.c
7295
parser = &fgd->parser;
kernel/trace/ftrace.c
7297
if (trace_parser_loaded((parser))) {
kernel/trace/ftrace.c
7299
parser->buffer);
kernel/trace/ftrace.c
7302
trace_parser_put(parser);
kernel/trace/ftrace.c
7400
struct trace_parser *parser;
kernel/trace/ftrace.c
7411
parser = &fgd->parser;
kernel/trace/ftrace.c
7413
read = trace_get_user(parser, ubuf, cnt, ppos);
kernel/trace/ftrace.c
7415
if (read >= 0 && trace_parser_loaded(parser) &&
kernel/trace/ftrace.c
7416
!trace_parser_cont(parser)) {
kernel/trace/ftrace.c
7419
parser->buffer);
kernel/trace/ftrace.c
7420
trace_parser_clear(parser);
kernel/trace/trace.c
1362
int trace_parser_get_init(struct trace_parser *parser, int size)
kernel/trace/trace.c
1364
memset(parser, 0, sizeof(*parser));
kernel/trace/trace.c
1366
parser->buffer = kmalloc(size, GFP_KERNEL);
kernel/trace/trace.c
1367
if (!parser->buffer)
kernel/trace/trace.c
1370
parser->size = size;
kernel/trace/trace.c
1377
void trace_parser_put(struct trace_parser *parser)
kernel/trace/trace.c
1379
kfree(parser->buffer);
kernel/trace/trace.c
1380
parser->buffer = NULL;
kernel/trace/trace.c
1394
int trace_get_user(struct trace_parser *parser, const char __user *ubuf,
kernel/trace/trace.c
1402
trace_parser_clear(parser);
kernel/trace/trace.c
1415
if (!parser->cont) {
kernel/trace/trace.c
1425
parser->idx = 0;
kernel/trace/trace.c
1436
if (parser->idx < parser->size - 1)
kernel/trace/trace.c
1437
parser->buffer[parser->idx++] = ch;
kernel/trace/trace.c
1452
parser->buffer[parser->idx] = 0;
kernel/trace/trace.c
1453
parser->cont = false;
kernel/trace/trace.c
1454
} else if (parser->idx < parser->size - 1) {
kernel/trace/trace.c
1455
parser->cont = true;
kernel/trace/trace.c
1456
parser->buffer[parser->idx++] = ch;
kernel/trace/trace.c
1458
parser->buffer[parser->idx] = 0;
kernel/trace/trace.c
1467
trace_parser_fail(parser);
kernel/trace/trace.h
1324
static inline bool trace_parser_loaded(struct trace_parser *parser)
kernel/trace/trace.h
1326
return !parser->fail && parser->idx != 0;
kernel/trace/trace.h
1329
static inline bool trace_parser_cont(struct trace_parser *parser)
kernel/trace/trace.h
1331
return parser->cont;
kernel/trace/trace.h
1334
static inline void trace_parser_clear(struct trace_parser *parser)
kernel/trace/trace.h
1336
parser->cont = false;
kernel/trace/trace.h
1337
parser->idx = 0;
kernel/trace/trace.h
1340
static inline void trace_parser_fail(struct trace_parser *parser)
kernel/trace/trace.h
1342
parser->fail = true;
kernel/trace/trace.h
1345
extern int trace_parser_get_init(struct trace_parser *parser, int size);
kernel/trace/trace.h
1346
extern void trace_parser_put(struct trace_parser *parser);
kernel/trace/trace.h
1347
extern int trace_get_user(struct trace_parser *parser, const char __user *ubuf,
kernel/trace/trace_events.c
1520
struct trace_parser parser;
kernel/trace/trace_events.c
1532
if (trace_parser_get_init(&parser, EVENT_BUF_SIZE + 1))
kernel/trace/trace_events.c
1535
read = trace_get_user(&parser, ubuf, cnt, ppos);
kernel/trace/trace_events.c
1537
if (read >= 0 && trace_parser_loaded((&parser))) {
kernel/trace/trace_events.c
1540
if (*parser.buffer == '!')
kernel/trace/trace_events.c
1543
ret = ftrace_set_clr_event(tr, parser.buffer + !set, set);
kernel/trace/trace_events.c
1551
trace_parser_put(&parser);
kernel/trace/trace_pid.c
161
struct trace_parser parser;
kernel/trace/trace_pid.c
169
if (trace_parser_get_init(&parser, PID_BUF_SIZE + 1))
kernel/trace/trace_pid.c
180
trace_parser_put(&parser);
kernel/trace/trace_pid.c
202
ret = trace_get_user(&parser, ubuf, cnt, &pos);
kernel/trace/trace_pid.c
210
if (!trace_parser_loaded(&parser))
kernel/trace/trace_pid.c
214
if (kstrtoul(parser.buffer, 0, &val))
kernel/trace/trace_pid.c
225
trace_parser_clear(&parser);
kernel/trace/trace_pid.c
229
trace_parser_put(&parser);
net/bluetooth/hidp/hidp.h
92
__u16 parser;
net/bluetooth/hidp/sock.c
135
__u16 parser;
net/bluetooth/hidp/sock.c
186
ca.parser = ca32.parser;
sound/core/seq/seq_midi.c
142
snd_midi_event_reset_decode(msynth->parser);
sound/core/seq/seq_midi.c
144
if (msynth->parser == NULL)
sound/core/seq/seq_midi.c
146
len = snd_midi_event_decode(msynth->parser, msg, sizeof(msg), ev);
sound/core/seq/seq_midi.c
150
snd_midi_event_reset_decode(msynth->parser);
sound/core/seq/seq_midi.c
161
if (snd_midi_event_new(MAX_MIDI_EVENT_BUF, &msynth->parser) < 0)
sound/core/seq/seq_midi.c
194
snd_midi_event_reset_encode(msynth->parser);
sound/core/seq/seq_midi.c
237
snd_midi_event_reset_decode(msynth->parser);
sound/core/seq/seq_midi.c
263
snd_midi_event_free(msynth->parser);
sound/core/seq/seq_midi.c
48
struct snd_midi_event *parser;
sound/core/seq/seq_midi.c
81
if (msynth->parser == NULL)
sound/core/seq/seq_midi.c
85
if (!snd_midi_event_encode_byte(msynth->parser,
sound/core/seq/seq_virmidi.c
153
if (!snd_midi_event_encode_byte(vmidi->parser, input,
sound/core/seq/seq_virmidi.c
194
if (snd_midi_event_new(0, &vmidi->parser) < 0) {
sound/core/seq/seq_virmidi.c
223
if (snd_midi_event_new(MAX_MIDI_EVENT_BUF, &vmidi->parser) < 0) {
sound/core/seq/seq_virmidi.c
249
snd_midi_event_free(vmidi->parser);
sound/core/seq/seq_virmidi.c
264
snd_midi_event_free(vmidi->parser);
sound/core/seq/seq_virmidi.c
91
snd_midi_event_reset_decode(vmidi->parser);
sound/core/seq/seq_virmidi.c
93
len = snd_midi_event_decode(vmidi->parser, msg, sizeof(msg), ev);
sound/firewire/fireface/ff-protocol-former.c
561
struct ff400_msg_parser *parser = ff->msg_parser;
sound/firewire/fireface/ff-protocol-former.c
563
return (parser->push_pos != parser->pull_pos);
sound/firewire/fireface/ff-protocol-former.c
658
struct ff400_msg_parser *parser = ff->msg_parser;
sound/firewire/fireface/ff-protocol-former.c
660
parser->msgs[parser->push_pos].msg = quad;
sound/firewire/fireface/ff-protocol-former.c
661
parser->msgs[parser->push_pos].tstamp = tstamp;
sound/firewire/fireface/ff-protocol-former.c
662
++parser->push_pos;
sound/firewire/fireface/ff-protocol-former.c
663
if (parser->push_pos >= FF400_QUEUE_SIZE)
sound/firewire/fireface/ff-protocol-former.c
664
parser->push_pos = 0;
sound/firewire/fireface/ff-protocol-former.c
684
struct ff400_msg_parser *parser = ff->msg_parser;
sound/firewire/fireface/ff-protocol-former.c
688
if (count < sizeof(ev) || parser->pull_pos == parser->push_pos)
sound/firewire/fireface/ff-protocol-former.c
694
while (count >= sizeof(*parser->msgs) && parser->pull_pos != parser->push_pos) {
sound/firewire/fireface/ff-protocol-former.c
696
if (copy_to_user(buf + consumed, parser->msgs + parser->pull_pos,
sound/firewire/fireface/ff-protocol-former.c
697
sizeof(*parser->msgs)))
sound/firewire/fireface/ff-protocol-former.c
703
++parser->pull_pos;
sound/firewire/fireface/ff-protocol-former.c
704
if (parser->pull_pos >= FF400_QUEUE_SIZE)
sound/firewire/fireface/ff-protocol-former.c
705
parser->pull_pos = 0;
sound/firewire/fireface/ff-protocol-former.c
707
count -= sizeof(*parser->msgs);
sound/firewire/fireface/ff-protocol-former.c
708
consumed += sizeof(*parser->msgs);
sound/firewire/motu/motu-command-dsp-message-parser.c
105
switch (parser->state) {
sound/firewire/motu/motu-command-dsp-message-parser.c
111
parser->value = fragment;
sound/firewire/motu/motu-command-dsp-message-parser.c
112
parser->message_count = 1;
sound/firewire/motu/motu-command-dsp-message-parser.c
113
parser->state = FRAGMENT_DETECTED;
sound/firewire/motu/motu-command-dsp-message-parser.c
119
if (parser->message_count % interval == 0) {
sound/firewire/motu/motu-command-dsp-message-parser.c
122
parser->value >>= 8;
sound/firewire/motu/motu-command-dsp-message-parser.c
123
parser->value |= (u64)fragment << 56;
sound/firewire/motu/motu-command-dsp-message-parser.c
125
if (parser->value == VALUES_AT_IMAGE_END) {
sound/firewire/motu/motu-command-dsp-message-parser.c
126
parser->state = AVAILABLE;
sound/firewire/motu/motu-command-dsp-message-parser.c
127
parser->fragment_pos = 0;
sound/firewire/motu/motu-command-dsp-message-parser.c
128
parser->value_index = 0;
sound/firewire/motu/motu-command-dsp-message-parser.c
129
parser->message_count = 0;
sound/firewire/motu/motu-command-dsp-message-parser.c
132
++parser->message_count;
sound/firewire/motu/motu-command-dsp-message-parser.c
138
if (parser->message_count % interval == 0) {
sound/firewire/motu/motu-command-dsp-message-parser.c
141
parser->value >>= 8;
sound/firewire/motu/motu-command-dsp-message-parser.c
142
parser->value |= (u64)fragment << 56;
sound/firewire/motu/motu-command-dsp-message-parser.c
143
++parser->fragment_pos;
sound/firewire/motu/motu-command-dsp-message-parser.c
145
if (parser->fragment_pos == 4) {
sound/firewire/motu/motu-command-dsp-message-parser.c
149
if (parser->value_index <
sound/firewire/motu/motu-command-dsp-message-parser.c
151
u32 val = (u32)(parser->value >> 32);
sound/firewire/motu/motu-command-dsp-message-parser.c
152
parser->meter.data[parser->value_index] = val;
sound/firewire/motu/motu-command-dsp-message-parser.c
154
++parser->value_index;
sound/firewire/motu/motu-command-dsp-message-parser.c
155
parser->fragment_pos = 0;
sound/firewire/motu/motu-command-dsp-message-parser.c
158
if (parser->value == VALUES_AT_IMAGE_END) {
sound/firewire/motu/motu-command-dsp-message-parser.c
159
parser->value_index = 0;
sound/firewire/motu/motu-command-dsp-message-parser.c
160
parser->fragment_pos = 0;
sound/firewire/motu/motu-command-dsp-message-parser.c
161
parser->message_count = 0;
sound/firewire/motu/motu-command-dsp-message-parser.c
164
++parser->message_count;
sound/firewire/motu/motu-command-dsp-message-parser.c
175
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-command-dsp-message-parser.c
177
guard(spinlock_irqsave)(&parser->lock);
sound/firewire/motu/motu-command-dsp-message-parser.c
178
memcpy(meter, &parser->meter, sizeof(*meter));
sound/firewire/motu/motu-command-dsp-message-parser.c
38
struct msg_parser *parser;
sound/firewire/motu/motu-command-dsp-message-parser.c
40
parser = devm_kzalloc(&motu->card->card_dev, sizeof(*parser), GFP_KERNEL);
sound/firewire/motu/motu-command-dsp-message-parser.c
41
if (!parser)
sound/firewire/motu/motu-command-dsp-message-parser.c
43
spin_lock_init(&parser->lock);
sound/firewire/motu/motu-command-dsp-message-parser.c
44
motu->message_parser = parser;
sound/firewire/motu/motu-command-dsp-message-parser.c
51
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-command-dsp-message-parser.c
53
parser->state = INITIALIZED;
sound/firewire/motu/motu-command-dsp-message-parser.c
59
parser->interval = 4;
sound/firewire/motu/motu-command-dsp-message-parser.c
63
parser->interval = 2;
sound/firewire/motu/motu-command-dsp-message-parser.c
69
parser->interval = 1;
sound/firewire/motu/motu-command-dsp-message-parser.c
88
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-command-dsp-message-parser.c
89
unsigned int interval = parser->interval;
sound/firewire/motu/motu-command-dsp-message-parser.c
92
guard(spinlock_irqsave)(&parser->lock);
sound/firewire/motu/motu-register-dsp-message-parser.c
103
struct msg_parser *parser;
sound/firewire/motu/motu-register-dsp-message-parser.c
104
parser = devm_kzalloc(&motu->card->card_dev, sizeof(*parser), GFP_KERNEL);
sound/firewire/motu/motu-register-dsp-message-parser.c
105
if (!parser)
sound/firewire/motu/motu-register-dsp-message-parser.c
107
spin_lock_init(&parser->lock);
sound/firewire/motu/motu-register-dsp-message-parser.c
109
parser->meter_pos_quirk = true;
sound/firewire/motu/motu-register-dsp-message-parser.c
110
motu->message_parser = parser;
sound/firewire/motu/motu-register-dsp-message-parser.c
116
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-register-dsp-message-parser.c
118
parser->prev_mixer_src_type = INVALID;
sound/firewire/motu/motu-register-dsp-message-parser.c
119
parser->mixer_ch = 0xff;
sound/firewire/motu/motu-register-dsp-message-parser.c
120
parser->mixer_src_ch = 0xff;
sound/firewire/motu/motu-register-dsp-message-parser.c
121
parser->prev_msg_type = INVALID;
sound/firewire/motu/motu-register-dsp-message-parser.c
129
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-register-dsp-message-parser.c
130
unsigned int pos = parser->push_pos;
sound/firewire/motu/motu-register-dsp-message-parser.c
137
parser->event_queue[pos] = entry;
sound/firewire/motu/motu-register-dsp-message-parser.c
142
parser->push_pos = pos;
sound/firewire/motu/motu-register-dsp-message-parser.c
150
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-register-dsp-message-parser.c
151
bool meter_pos_quirk = parser->meter_pos_quirk;
sound/firewire/motu/motu-register-dsp-message-parser.c
152
unsigned int pos = parser->push_pos;
sound/firewire/motu/motu-register-dsp-message-parser.c
155
guard(spinlock_irqsave)(&parser->lock);
sound/firewire/motu/motu-register-dsp-message-parser.c
176
parser->mixer_src_ch = 0;
sound/firewire/motu/motu-register-dsp-message-parser.c
177
parser->mixer_ch = mixer_ch;
sound/firewire/motu/motu-register-dsp-message-parser.c
187
struct snd_firewire_motu_register_dsp_parameter *param = &parser->param;
sound/firewire/motu/motu-register-dsp-message-parser.c
188
u8 mixer_ch = parser->mixer_ch;
sound/firewire/motu/motu-register-dsp-message-parser.c
189
u8 mixer_src_ch = parser->mixer_src_ch;
sound/firewire/motu/motu-register-dsp-message-parser.c
191
if (msg_type != parser->prev_mixer_src_type)
sound/firewire/motu/motu-register-dsp-message-parser.c
195
parser->prev_mixer_src_type = msg_type;
sound/firewire/motu/motu-register-dsp-message-parser.c
199
u8 mixer_ch = parser->mixer_ch;
sound/firewire/motu/motu-register-dsp-message-parser.c
236
parser->mixer_src_ch = mixer_src_ch;
sound/firewire/motu/motu-register-dsp-message-parser.c
243
struct snd_firewire_motu_register_dsp_parameter *param = &parser->param;
sound/firewire/motu/motu-register-dsp-message-parser.c
244
u8 mixer_ch = parser->mixer_ch;
sound/firewire/motu/motu-register-dsp-message-parser.c
267
if (parser->param.output.main_paired_volume != val) {
sound/firewire/motu/motu-register-dsp-message-parser.c
269
parser->param.output.main_paired_volume = val;
sound/firewire/motu/motu-register-dsp-message-parser.c
273
if (parser->param.output.hp_paired_volume != val) {
sound/firewire/motu/motu-register-dsp-message-parser.c
275
parser->param.output.hp_paired_volume = val;
sound/firewire/motu/motu-register-dsp-message-parser.c
279
if (parser->param.output.hp_paired_assignment != val) {
sound/firewire/motu/motu-register-dsp-message-parser.c
281
parser->param.output.hp_paired_assignment = val;
sound/firewire/motu/motu-register-dsp-message-parser.c
285
if (parser->param.line_input.boost_flag != val) {
sound/firewire/motu/motu-register-dsp-message-parser.c
287
parser->param.line_input.boost_flag = val;
sound/firewire/motu/motu-register-dsp-message-parser.c
291
if (parser->param.line_input.nominal_level_flag != val) {
sound/firewire/motu/motu-register-dsp-message-parser.c
293
parser->param.line_input.nominal_level_flag = val;
sound/firewire/motu/motu-register-dsp-message-parser.c
299
struct snd_firewire_motu_register_dsp_parameter *param = &parser->param;
sound/firewire/motu/motu-register-dsp-message-parser.c
300
u8 input_ch = parser->input_ch;
sound/firewire/motu/motu-register-dsp-message-parser.c
302
if (parser->prev_msg_type != msg_type)
sound/firewire/motu/motu-register-dsp-message-parser.c
324
parser->input_ch = input_ch;
sound/firewire/motu/motu-register-dsp-message-parser.c
341
parser->meter.data[pos] = val;
sound/firewire/motu/motu-register-dsp-message-parser.c
346
parser->meter.data[pos] = val;
sound/firewire/motu/motu-register-dsp-message-parser.c
359
parser->prev_msg_type = msg_type;
sound/firewire/motu/motu-register-dsp-message-parser.c
363
if (pos != parser->push_pos)
sound/firewire/motu/motu-register-dsp-message-parser.c
370
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-register-dsp-message-parser.c
372
guard(spinlock_irqsave)(&parser->lock);
sound/firewire/motu/motu-register-dsp-message-parser.c
373
memcpy(meter, &parser->meter, sizeof(*meter));
sound/firewire/motu/motu-register-dsp-message-parser.c
379
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-register-dsp-message-parser.c
381
guard(spinlock_irqsave)(&parser->lock);
sound/firewire/motu/motu-register-dsp-message-parser.c
382
memcpy(param, &parser->param, sizeof(*param));
sound/firewire/motu/motu-register-dsp-message-parser.c
387
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-register-dsp-message-parser.c
389
if (parser->pull_pos > parser->push_pos)
sound/firewire/motu/motu-register-dsp-message-parser.c
390
return EVENT_QUEUE_SIZE - parser->pull_pos + parser->push_pos;
sound/firewire/motu/motu-register-dsp-message-parser.c
392
return parser->push_pos - parser->pull_pos;
sound/firewire/motu/motu-register-dsp-message-parser.c
397
struct msg_parser *parser = motu->message_parser;
sound/firewire/motu/motu-register-dsp-message-parser.c
398
unsigned int pos = parser->pull_pos;
sound/firewire/motu/motu-register-dsp-message-parser.c
400
if (pos == parser->push_pos)
sound/firewire/motu/motu-register-dsp-message-parser.c
403
guard(spinlock_irqsave)(&parser->lock);
sound/firewire/motu/motu-register-dsp-message-parser.c
405
*event = parser->event_queue[pos];
sound/firewire/motu/motu-register-dsp-message-parser.c
410
parser->pull_pos = pos;
sound/hda/common/sysfs.c
579
void (*parser)(char *buf, struct hda_bus *bus, struct hda_codec **retc);
sound/hda/common/sysfs.c
585
.parser = parse_codec_mode,
sound/hda/common/sysfs.c
589
.parser = parse_model_mode,
sound/hda/common/sysfs.c
594
.parser = parse_verb_mode,
sound/hda/common/sysfs.c
599
.parser = parse_pincfg_mode,
sound/hda/common/sysfs.c
604
.parser = parse_hint_mode
sound/hda/common/sysfs.c
608
.parser = parse_vendor_id_mode,
sound/hda/common/sysfs.c
612
.parser = parse_subsystem_id_mode,
sound/hda/common/sysfs.c
616
.parser = parse_revision_id_mode,
sound/hda/common/sysfs.c
620
.parser = parse_chip_name_mode,
sound/hda/common/sysfs.c
696
else if (patch_items[line_mode].parser &&
sound/hda/common/sysfs.c
698
patch_items[line_mode].parser(buf, bus, &codec);
tools/perf/util/demangle-rust-v0.c
1000
return parser_eat(&printer->parser, b);
tools/perf/util/demangle-rust-v0.c
1005
parser_pop_depth(&printer->parser);
tools/perf/util/demangle-rust-v0.c
1056
struct parser backref;
tools/perf/util/demangle-rust-v0.c
1063
struct parser orig_parser = printer->parser;
tools/perf/util/demangle-rust-v0.c
1065
printer->parser = backref;
tools/perf/util/demangle-rust-v0.c
1068
printer->parser = orig_parser;
tools/perf/util/demangle-rust-v0.c
113
struct parser parser;
tools/perf/util/demangle-rust-v0.c
124
static NODISCARD demangle_status try_parse_path(struct parser *parser) {
tools/perf/util/demangle-rust-v0.c
127
*parser,
tools/perf/util/demangle-rust-v0.c
135
*parser = printer.parser;
tools/perf/util/demangle-rust-v0.c
1675
if (printer->status == DemangleOk && /* safety */ printer->parser.next > 0) {
tools/perf/util/demangle-rust-v0.c
1676
printer->parser.next--;
tools/perf/util/demangle-rust-v0.c
172
struct parser parser = { inner, inner_len, 0, 0 };
tools/perf/util/demangle-rust-v0.c
174
demangle_status status = try_parse_path(&parser);
tools/perf/util/demangle-rust-v0.c
176
char next = parser.sym[parser.next];
tools/perf/util/demangle-rust-v0.c
179
if (parser.next < parser.sym_len && next >= 'A' && next <= 'Z') {
tools/perf/util/demangle-rust-v0.c
180
status = try_parse_path(&parser);
tools/perf/util/demangle-rust-v0.c
187
*rest = parser.sym + parser.next;
tools/perf/util/demangle-rust-v0.c
662
static NODISCARD demangle_status parser_push_depth(struct parser *parser) {
tools/perf/util/demangle-rust-v0.c
663
parser->depth++;
tools/perf/util/demangle-rust-v0.c
664
if (parser->depth > MAX_DEPTH) {
tools/perf/util/demangle-rust-v0.c
671
static demangle_status parser_pop_depth(struct parser *parser) {
tools/perf/util/demangle-rust-v0.c
672
parser->depth--;
tools/perf/util/demangle-rust-v0.c
676
static uint8_t parser_peek(struct parser const *parser) {
tools/perf/util/demangle-rust-v0.c
677
if (parser->next == parser->sym_len) {
tools/perf/util/demangle-rust-v0.c
680
return parser->sym[parser->next];
tools/perf/util/demangle-rust-v0.c
684
static bool parser_eat(struct parser *parser, uint8_t ch) {
tools/perf/util/demangle-rust-v0.c
685
if (parser_peek(parser) == ch) {
tools/perf/util/demangle-rust-v0.c
687
parser->next++;
tools/perf/util/demangle-rust-v0.c
695
static uint8_t parser_next(struct parser *parser) {
tools/perf/util/demangle-rust-v0.c
697
if (parser->next == parser->sym_len) {
tools/perf/util/demangle-rust-v0.c
700
return parser->sym[parser->next++];
tools/perf/util/demangle-rust-v0.c
704
static NODISCARD demangle_status parser_ch(struct parser *parser, uint8_t *next) {
tools/perf/util/demangle-rust-v0.c
706
if (parser->next == parser->sym_len) {
tools/perf/util/demangle-rust-v0.c
709
*next = parser->sym[parser->next++];
tools/perf/util/demangle-rust-v0.c
719
static NODISCARD demangle_status parser_hex_nibbles(struct parser *parser, struct buf *buf) {
tools/perf/util/demangle-rust-v0.c
720
size_t start = parser->next;
tools/perf/util/demangle-rust-v0.c
722
uint8_t ch = parser_next(parser);
tools/perf/util/demangle-rust-v0.c
730
buf->start = parser->sym + start;
tools/perf/util/demangle-rust-v0.c
731
buf->len = parser->next - start - 1; // skip final _
tools/perf/util/demangle-rust-v0.c
735
static NODISCARD demangle_status parser_digit_10(struct parser *parser, uint8_t *out) {
tools/perf/util/demangle-rust-v0.c
736
uint8_t ch = parser_peek(parser);
tools/perf/util/demangle-rust-v0.c
739
parser->next++;
tools/perf/util/demangle-rust-v0.c
746
static NODISCARD demangle_status parser_digit_62(struct parser *parser, uint64_t *out) {
tools/perf/util/demangle-rust-v0.c
747
uint8_t ch = parser_peek(parser);
tools/perf/util/demangle-rust-v0.c
750
parser->next++;
tools/perf/util/demangle-rust-v0.c
754
parser->next++;
tools/perf/util/demangle-rust-v0.c
758
parser->next++;
tools/perf/util/demangle-rust-v0.c
765
static NODISCARD demangle_status parser_integer_62(struct parser *parser, uint64_t *out) {
tools/perf/util/demangle-rust-v0.c
766
if (parser_eat(parser, '_')) {
tools/perf/util/demangle-rust-v0.c
773
while (!parser_eat(parser, '_')) {
tools/perf/util/demangle-rust-v0.c
775
if ((status = parser_digit_62(parser, &d)) != DemangleOk) {
tools/perf/util/demangle-rust-v0.c
794
static NODISCARD demangle_status parser_opt_integer_62(struct parser *parser, uint8_t tag, uint64_t *out) {
tools/perf/util/demangle-rust-v0.c
795
if (!parser_eat(parser, tag)) {
tools/perf/util/demangle-rust-v0.c
801
if ((status = parser_integer_62(parser, out)) != DemangleOk) {
tools/perf/util/demangle-rust-v0.c
811
static NODISCARD demangle_status parser_disambiguator(struct parser *parser, uint64_t *out) {
tools/perf/util/demangle-rust-v0.c
812
return parser_opt_integer_62(parser, 's', out);
tools/perf/util/demangle-rust-v0.c
817
static NODISCARD demangle_status parser_namespace(struct parser *parser, parser_namespace_type *out) {
tools/perf/util/demangle-rust-v0.c
818
uint8_t next = parser_next(parser);
tools/perf/util/demangle-rust-v0.c
830
static NODISCARD demangle_status parser_backref(struct parser *parser, struct parser *out) {
tools/perf/util/demangle-rust-v0.c
831
size_t start = parser->next;
tools/perf/util/demangle-rust-v0.c
837
demangle_status status = parser_integer_62(parser, &i);
tools/perf/util/demangle-rust-v0.c
844
struct parser res = {
tools/perf/util/demangle-rust-v0.c
845
.sym = parser->sym,
tools/perf/util/demangle-rust-v0.c
846
.sym_len = parser->sym_len,
tools/perf/util/demangle-rust-v0.c
848
.depth = parser->depth
tools/perf/util/demangle-rust-v0.c
858
static NODISCARD demangle_status parser_ident(struct parser *parser, struct ident *out) {
tools/perf/util/demangle-rust-v0.c
859
bool is_punycode = parser_eat(parser, 'u');
tools/perf/util/demangle-rust-v0.c
862
demangle_status status = parser_digit_10(parser, &d);
tools/perf/util/demangle-rust-v0.c
869
status = parser_digit_10(parser, &d);
tools/perf/util/demangle-rust-v0.c
885
parser_eat(parser, '_');
tools/perf/util/demangle-rust-v0.c
887
size_t start = parser->next;
tools/perf/util/demangle-rust-v0.c
888
if (parser->sym_len - parser->next < len) {
tools/perf/util/demangle-rust-v0.c
891
parser->next += len;
tools/perf/util/demangle-rust-v0.c
893
const char *ident = &parser->sym[start];
tools/perf/util/demangle-rust-v0.c
970
demangle_status _parse_status = method(&(printer)->parser, ## __VA_ARGS__); \
tools/testing/selftests/bpf/bench.c
391
.parser = parse_arg,
tools/testing/selftests/bpf/bench.c
404
.parser = parse_arg,
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
105
.parser = parse_arg,
tools/testing/selftests/bpf/benchs/bench_bpf_crypto.c
66
.parser = crypto_parse_arg,
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_lookup.c
111
.parser = parse_arg,
tools/testing/selftests/bpf/benchs/bench_bpf_loop.c
45
.parser = parse_arg,
tools/testing/selftests/bpf/benchs/bench_htab_mem.c
93
.parser = htab_mem_parse_arg,
tools/testing/selftests/bpf/benchs/bench_local_storage.c
63
.parser = parse_arg,
tools/testing/selftests/bpf/benchs/bench_local_storage_create.c
69
.parser = parse_arg,
tools/testing/selftests/bpf/benchs/bench_local_storage_rcu_tasks_trace.c
64
.parser = parse_arg,
tools/testing/selftests/bpf/benchs/bench_lpm_trie_map.c
82
.parser = lpm_parse_arg,
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
98
.parser = parse_arg,
tools/testing/selftests/bpf/benchs/bench_sockmap.c
249
int verdict, pass, parser, map;
tools/testing/selftests/bpf/benchs/bench_sockmap.c
253
parser = bpf_program__fd(ctx.skel->progs.prog_skb_parser);
tools/testing/selftests/bpf/benchs/bench_sockmap.c
260
err = bpf_prog_attach(parser, map, BPF_SK_SKB_STREAM_PARSER, 0);
tools/testing/selftests/bpf/benchs/bench_sockmap.c
585
.parser = parse_arg,
tools/testing/selftests/bpf/benchs/bench_strncmp.c
48
.parser = strncmp_parse_arg,
tools/testing/selftests/bpf/benchs/bench_trigger.c
53
.parser = parse_arg,
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
729
int parser = bpf_program__fd(skel->progs.prog_stream_parser);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
734
err = xbpf_prog_attach(parser, sock_map, BPF_SK_SKB_STREAM_PARSER, 0);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
746
xbpf_prog_detach2(parser, sock_map, BPF_SK_SKB_STREAM_PARSER);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
849
int parser = bpf_program__fd(skel->progs.prog_stream_parser);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
854
err = xbpf_prog_attach(parser, sock_map, BPF_SK_SKB_STREAM_PARSER, 0);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
866
xbpf_prog_detach2(parser, sock_map, BPF_SK_SKB_STREAM_PARSER);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
953
int parser = bpf_program__fd(skel->progs.prog_stream_parser);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
958
err = xbpf_prog_attach(parser, sock_map, BPF_SK_SKB_STREAM_PARSER, 0);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
970
xbpf_prog_detach2(parser, sock_map, BPF_SK_SKB_STREAM_PARSER);
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
50
int verdict, parser;
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
57
parser = bpf_program__fd(strp->progs.prog_skb_parser_partial);
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
59
parser = bpf_program__fd(strp->progs.prog_skb_parser);
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
66
err = bpf_prog_attach(parser, *out_map, BPF_SK_SKB_STREAM_PARSER, 0);
tools/testing/selftests/bpf/test_progs.c
1958
.parser = parse_arg,
tools/testing/selftests/bpf/veristat.c
457
.parser = parse_arg,
tools/testing/selftests/bpf/xdp_features.c
207
.parser = parse_arg,