Lines Matching refs:ipa
15 #include "ipa.h"
168 bool ipa_cmd_table_valid(struct ipa *ipa, const struct ipa_mem *mem,
171 struct device *dev = &ipa->pdev->dev;
177 ipa->mem_offset > offset_max - mem->offset) {
182 ipa->mem_offset, mem->offset, offset_max);
187 if (mem->offset > ipa->mem_size ||
188 mem->size > ipa->mem_size - mem->offset) {
193 mem->offset, mem->size, ipa->mem_size);
202 static bool ipa_cmd_header_valid(struct ipa *ipa)
204 const struct ipa_mem *mem = &ipa->mem[IPA_MEM_MODEM_HEADER];
205 struct device *dev = &ipa->pdev->dev;
217 ipa->mem_offset > offset_max - mem->offset) {
220 ipa->mem_offset, mem->offset, offset_max);
226 size = ipa->mem[IPA_MEM_MODEM_HEADER].size;
227 size += ipa->mem[IPA_MEM_AP_HEADER].size;
235 if (size > ipa->mem_size || mem->offset > ipa->mem_size - size) {
238 mem->offset, size, ipa->mem_size);
247 static bool ipa_cmd_register_write_offset_valid(struct ipa *ipa,
251 struct device *dev = &ipa->pdev->dev;
260 if (ipa->version != IPA_VERSION_3_5_1)
269 if (offset > offset_max || ipa->mem_offset > offset_max - offset) {
271 name, ipa->mem_offset, offset, offset_max);
279 static bool ipa_cmd_register_write_valid(struct ipa *ipa)
287 if (ipa->version != IPA_VERSION_4_2) {
288 offset = ipa_reg_filt_rout_hash_flush_offset(ipa->version);
290 if (!ipa_cmd_register_write_offset_valid(ipa, name, offset))
303 if (!ipa_cmd_register_write_offset_valid(ipa, name, offset))
309 bool ipa_cmd_data_valid(struct ipa *ipa)
311 if (!ipa_cmd_header_valid(ipa))
314 if (!ipa_cmd_register_write_valid(ipa))
361 ipa_cmd_payload_alloc(struct ipa *ipa, dma_addr_t *addr)
366 endpoint = ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX];
367 trans_info = &ipa->gsi.channel[endpoint->channel_id].trans_info;
378 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
386 offset += ipa->mem_offset;
393 hash_offset += ipa->mem_offset;
400 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
417 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
425 offset += ipa->mem_offset;
432 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
447 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
459 if (ipa->version != IPA_VERSION_3_5_1) {
484 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
500 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
510 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
524 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
534 /* assert(offset <= U16_MAX && ipa->mem_offset <= U16_MAX - offset); */
536 offset += ipa->mem_offset;
538 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
566 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
575 cmd_payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
587 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
596 payload = ipa_cmd_payload_alloc(ipa, &payload_addr);
604 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
607 endpoint = ipa->name_map[IPA_ENDPOINT_AP_LAN_RX];
621 void ipa_cmd_tag_process(struct ipa *ipa)
626 trans = ipa_cmd_trans_alloc(ipa, count);
631 dev_err(&ipa->pdev->dev,
641 channel = &endpoint->ipa->gsi.channel[endpoint->channel_id];
647 struct gsi_trans *ipa_cmd_trans_alloc(struct ipa *ipa, u32 tre_count)
652 endpoint = ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX];
654 trans = gsi_channel_trans_alloc(&ipa->gsi, endpoint->channel_id,