Lines Matching defs:fw
93 return "xc3028L-v36.fw";
95 return "xc3028-v27.fw";
112 struct xc3028_fw *fw;
116 fw = &xc->fw[i];
117 if (fw->type == XC3028_FW_BASE)
118 return fw;
127 struct xc3028_fw *fw;
131 fw = &xc->fw[i];
132 if (fw->type == (XC3028_FW_D2633|XC3028_FW_DTV6|XC3028_FW_ATSC))
133 return fw;
142 struct xc3028_fw *fw;
146 fw = &xc->fw[i];
147 if (fw->type ==
150 fw->int_freq == 6200)
151 return fw;
162 uint8_t *fw = NULL;
174 fw = firmware_malloc(fwlen);
175 if (fw == NULL) {
180 error = firmware_read(fwh, 0, fw, fwlen);
187 error = xc3028_firmware_parse(xc, fw, fwlen);
214 device_printf(xc->parent, "%s: hw %d.%d, fw %d.%d\n",
221 if (fw)
222 firmware_free(fw, fwlen);
290 xc3028_firmware_parse(struct xc3028 *xc, const uint8_t *fw, size_t fwlen)
292 const uint8_t *p = fw, *endp = p + fwlen;
311 aprint_debug_dev(xc->parent, "%s: fw type %s, ver %d.%d, %d images\n",
314 xc->fw = kmem_zalloc(sizeof(*xc->fw) * narr, KM_SLEEP);
318 xcfw = &xc->fw[index];
350 aprint_error_dev(xc->parent, "%s: fw image corrupt\n", xc3028_name(xc));
352 if (xc->fw[index].data)
353 kmem_free(xc->fw[index].data, xc->fw[index].data_size);
355 kmem_free(xc->fw, sizeof(*xc->fw) * xc->nfw);
364 const uint8_t *fw = xcfw->data, *p;
373 len = le16dec(&fw[i]);
400 cmd[0] = fw[i];
401 p = &fw[i + 1];
500 aprint_error_dev(parent, "%s: fw open failed\n",
517 if (xc->fw) {
519 if (xc->fw[index].data)
520 kmem_free(xc->fw[index].data,
521 xc->fw[index].data_size);
523 kmem_free(xc->fw, sizeof(*xc->fw) * xc->nfw);