release_firmware(fw); 
static int tda10045_fwupload(struct dvb_frontend* fe){	struct tda1004x_state* state = fe->demodulator_priv;	int ret;	const struct firmware *fw;	/* don't re-upload unless necessary */	if (tda1004x_check_upload_ok(state) == 0)		return 0;	/* request the firmware, this will block until someone uploads it */	printk(KERN_INFO "tda1004x: waiting for firmware upload (%s)...\n", TDA10045_DEFAULT_FIRMWARE);	ret = state->config->request_firmware(fe, &fw, TDA10045_DEFAULT_FIRMWARE);	if (ret) {		printk(KERN_ERR "tda1004x: no firmware upload (timeout or file not found?)\n");		return ret;	}	/* reset chip */	tda1004x_write_mask(state, TDA1004X_CONFC4, 0x10, 0);	tda1004x_write_mask(state, TDA1004X_CONFC4, 8, 8);	tda1004x_write_mask(state, TDA1004X_CONFC4, 8, 0);	msleep(10);	/* set parameters */	tda10045h_set_bandwidth(state, BANDWIDTH_8_MHZ);	ret = tda1004x_do_upload(state, fw->data, fw->size, TDA10045H_FWPAGE, TDA10045H_CODE_IN);	if (ret)		return ret;	printk(KERN_INFO "tda1004x: firmware upload complete\n");	/* wait for DSP to initialise */	/* DSPREADY doesn't seem to work on the TDA10045H */	msleep(100);	return tda1004x_check_upload_ok(state);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/0c744b010078bd65724477e75261e51712d290a0/tda1004x.c/clean/drivers/media/dvb/frontends/tda1004x.c