return -1; 
if (!ret) ret = -1; return ret; 
static int StartHWFilter(struct dvb_demux_filter *dvbdmxfilter){	struct dvb_demux_feed *dvbdmxfeed = dvbdmxfilter->feed;	struct av7110 *av7110 = (struct av7110 *) dvbdmxfeed->demux->priv;	u16 buf[20];	int ret, i;	u16 handle;//	u16 mode = 0x0320;	u16 mode = 0xb96a;	dprintk(4, "%p\n", av7110);	if (dvbdmxfilter->type == DMX_TYPE_SEC) {		if (hw_sections) {			buf[4] = (dvbdmxfilter->filter.filter_value[0] << 8) |				dvbdmxfilter->maskandmode[0];			for (i = 3; i < 18; i++)				buf[i + 4 - 2] =					(dvbdmxfilter->filter.filter_value[i] << 8) |					dvbdmxfilter->maskandmode[i];			mode = 4;		}	} else if ((dvbdmxfeed->ts_type & TS_PACKET) &&		   !(dvbdmxfeed->ts_type & TS_PAYLOAD_ONLY)) {		av7110_p2t_init(&av7110->p2t_filter[dvbdmxfilter->index], dvbdmxfeed);	}	buf[0] = (COMTYPE_PID_FILTER << 8) + AddPIDFilter;	buf[1] = 16;	buf[2] = dvbdmxfeed->pid;	buf[3] = mode;	ret = av7110_fw_request(av7110, buf, 20, &handle, 1);	if (ret != 0 || handle >= 32) {		printk("dvb-ttpci: %s error  buf %04x %04x %04x %04x  "				"ret %x  handle %04x\n",				__FUNCTION__, buf[0], buf[1], buf[2], buf[3],				ret, handle);		dvbdmxfilter->hw_handle = 0xffff;		return -1;	}	av7110->handle2filter[handle] = dvbdmxfilter;	dvbdmxfilter->hw_handle = handle;	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ce18a223607b0e8cc9a8375abc64281a13ac423c/av7110.c/buggy/drivers/media/dvb/ttpci/av7110.c