Пример #1
0
void altera_ci_release(void *dev, int ci_nr)
{
	struct fpga_inode *temp_int = find_inode(dev);
	struct altera_ci_state *state = NULL;

	ci_dbg_print("%s\n", __func__);

	if (temp_int != NULL) {
		state = temp_int->internal->state[ci_nr - 1];
		altera_hw_filt_release(dev, ci_nr);

		if (((temp_int->internal->filts_used) <= 0) &&
				((--(temp_int->internal->cis_used)) <= 0)) {

			ci_dbg_print("%s: Actually removing\n", __func__);

			remove_inode(temp_int->internal);
			kfree(state->internal);
		}

		if (state != NULL) {
			if (state->ca.data != NULL)
				dvb_ca_en50221_release(&state->ca);

			kfree(state);
		}
	}

}
void mantis_ca_exit(struct mantis_pci *mantis)
{
	struct mantis_ca *ca = mantis->mantis_ca;

	dprintk(MANTIS_DEBUG, 1, "Mantis CA exit");

	mantis_evmgr_exit(ca);
	dprintk(MANTIS_ERROR, 1, "Unregistering EN50221 device");
	if (ca)
		dvb_ca_en50221_release(&ca->en50221);

	kfree(ca);
}
Пример #3
0
void netup_unidvb_ci_unregister(struct netup_unidvb_dev *dev, int num)
{
	struct netup_ci_state *state;

	dev_dbg(&dev->pci_dev->dev, "%s()\n", __func__);
	if (num < 0 || num > 1) {
		dev_err(&dev->pci_dev->dev, "%s(): invalid CI adapter %d\n",
				__func__, num);
		return;
	}
	state = &dev->ci[num];
	dvb_ca_en50221_release(&state->ca);
}
Пример #4
0
void tbs_ci_release(struct tbs_adapter *adap)
{
	struct tbs_ci_state *state;

	if (NULL == adap) return;

	state = (struct tbs_ci_state *)adap->adap_priv;

	if (NULL == state) return;

	if (NULL == state->ca.data) return;

	dvb_ca_en50221_release(&state->ca);
	//memset(&state->ca, 0, sizeof(state->ca));
	kfree(state);
}
Пример #5
0
static void az6007_ci_uninit(struct dvb_usb_device *d)
{
	struct az6007_device_state *state;

	deb_info("%s", __func__);

	if (NULL == d)
		return;

	state = (struct az6007_device_state *)d->priv;
	if (NULL == state)
		return;

	if (NULL == state->ca.data)
		return;

	dvb_ca_en50221_release(&state->ca);

	memset(&state->ca, 0, sizeof(state->ca));
}
Пример #6
0
static void az6007_ci_uninit(struct dvb_usb_device *d)
{
	struct az6007_device_state *state;

	pr_debug("%s()\n", __func__);

	if (NULL == d)
		return;

	state = d_to_priv(d);
	if (NULL == state)
		return;

	if (NULL == state->ca.data)
		return;

	dvb_ca_en50221_release(&state->ca);

	memset(&state->ca, 0, sizeof(state->ca));
}