Lines Matching refs:pdr
75 struct pdr {
110 pdr_id(const struct pdr *pdr)
112 return le32_to_cpu(pdr->id);
116 pdr_addr(const struct pdr *pdr)
118 return le32_to_cpu(pdr->addr);
122 pdr_len(const struct pdr *pdr)
124 return le32_to_cpu(pdr->len);
148 static const struct pdr *
149 hermes_find_pdr(const struct pdr *first_pdr, u32 record_id, const void *end)
151 const struct pdr *pdr = first_pdr;
153 end -= sizeof(struct pdr);
155 while (((void *) pdr <= end) &&
156 (pdr_id(pdr) != PDI_END)) {
162 if (pdr_len(pdr) < 2)
166 if (pdr_id(pdr) == record_id)
167 return pdr;
169 pdr = (struct pdr *) pdr->next;
196 hermes_plug_pdi(hermes_t *hw, const struct pdr *first_pdr,
199 const struct pdr *pdr;
202 pdr = hermes_find_pdr(first_pdr, pdi_id(pdi), pdr_end);
205 if (!pdr)
209 if (pdi_len(pdi) != pdr_len(pdr))
213 hw->ops->program(hw, pdi->data, pdr_addr(pdr), pdi_len(pdi));
231 const struct pdr *pdr;
233 pdr = (const struct pdr *) first_pdr;
240 ret = hermes_plug_pdi(hw, pdr, pdi, pdr_end);
396 const struct pdr *pdr = (const struct pdr *) first_pdr;
403 pdr_end -= sizeof(struct pdr);
405 while (((void *) pdr <= pdr_end) &&
406 (pdr_id(pdr) != PDI_END)) {
413 if (pdr_len(pdr) < 2)
415 record_id = pdr_id(pdr);
466 if ((pdi_len(pdi) == pdr_len(pdr)) &&
469 hw->ops->program(hw, pdi->data, pdr_addr(pdr),
474 pdr++;