| .. | .. |
|---|
| 649 | 649 | deb_info("firmware chunk, addr: 0x%04x, len: 0x%04x, total length: 0x%04zx\n",addr,len,fw->size); |
|---|
| 650 | 650 | if ((ret = bcm3510_write_ram(st,addr,&b[i+4],len)) < 0) { |
|---|
| 651 | 651 | err("firmware download failed: %d\n",ret); |
|---|
| 652 | + release_firmware(fw); |
|---|
| 652 | 653 | return ret; |
|---|
| 653 | 654 | } |
|---|
| 654 | 655 | i += 4 + len; |
|---|
| .. | .. |
|---|
| 834 | 835 | kfree(state); |
|---|
| 835 | 836 | return NULL; |
|---|
| 836 | 837 | } |
|---|
| 837 | | -EXPORT_SYMBOL(bcm3510_attach); |
|---|
| 838 | +EXPORT_SYMBOL_GPL(bcm3510_attach); |
|---|
| 838 | 839 | |
|---|
| 839 | 840 | static const struct dvb_frontend_ops bcm3510_ops = { |
|---|
| 840 | 841 | .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, |
|---|