Lines Matching refs:ipa

15 #include "ipa.h"
171 bool ipa_cmd_table_init_valid(struct ipa *ipa, const struct ipa_mem *mem,
177 struct device *dev = ipa->dev;
180 size = route ? ipa->route_count : ipa->filter_count + 1;
193 ipa->mem_offset > offset_max - mem->offset) {
196 ipa->mem_offset, mem->offset, offset_max);
205 static bool ipa_cmd_header_init_local_valid(struct ipa *ipa)
207 struct device *dev = ipa->dev;
225 mem = ipa_mem_find(ipa, IPA_MEM_MODEM_HEADER);
230 if (offset > offset_max || ipa->mem_offset > offset_max - offset) {
233 ipa->mem_offset, offset, offset_max);
239 mem = ipa_mem_find(ipa, IPA_MEM_AP_HEADER);
255 static bool ipa_cmd_register_write_offset_valid(struct ipa *ipa,
259 struct device *dev = ipa->dev;
269 if (ipa->version >= IPA_VERSION_4_0)
278 if (offset > offset_max || ipa->mem_offset > offset_max - offset) {
280 name, ipa->mem_offset, offset, offset_max);
288 static bool ipa_cmd_register_write_valid(struct ipa *ipa)
297 if (ipa_table_hash_support(ipa)) {
298 if (ipa->version < IPA_VERSION_5_0)
299 reg = ipa_reg(ipa, FILT_ROUT_HASH_FLUSH);
301 reg = ipa_reg(ipa, FILT_ROUT_CACHE_FLUSH);
305 if (!ipa_cmd_register_write_offset_valid(ipa, name, offset))
316 reg = ipa_reg(ipa, ENDP_STATUS);
319 if (!ipa_cmd_register_write_offset_valid(ipa, name, offset))
348 ipa_cmd_payload_alloc(struct ipa *ipa, dma_addr_t *addr)
353 endpoint = ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX];
354 trans_info = &ipa->gsi.channel[endpoint->channel_id].trans_info;
365 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
372 offset += ipa->mem_offset;
379 hash_offset += ipa->mem_offset;
386 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
403 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
410 offset += ipa->mem_offset;
417 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
432 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
448 if (ipa->version >= IPA_VERSION_4_0) {
473 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
489 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
495 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
498 if (ipa->version < IPA_VERSION_5_0) {
514 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
524 WARN_ON(offset > U16_MAX || ipa->mem_offset > U16_MAX - offset);
526 offset += ipa->mem_offset;
528 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
554 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
560 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
572 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
578 payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
587 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
591 reinit_completion(&ipa->completion);
604 endpoint = ipa->name_map[IPA_ENDPOINT_AP_LAN_RX];
616 void ipa_cmd_pipeline_clear_wait(struct ipa *ipa)
618 wait_for_completion(&ipa->completion);
622 struct gsi_trans *ipa_cmd_trans_alloc(struct ipa *ipa, u32 tre_count)
629 endpoint = ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX];
631 return gsi_channel_trans_alloc(&ipa->gsi, endpoint->channel_id,
636 int ipa_cmd_init(struct ipa *ipa)
640 if (!ipa_cmd_header_init_local_valid(ipa))
643 if (!ipa_cmd_register_write_valid(ipa))