Lines Matching full:d

26 static int dvb_usb_adapter_init(struct dvb_usb_device *d, short *adapter_nrs)  in dvb_usb_adapter_init()  argument
31 for (n = 0; n < d->props.num_adapters; n++) { in dvb_usb_adapter_init()
32 adap = &d->adapter[n]; in dvb_usb_adapter_init()
33 adap->dev = d; in dvb_usb_adapter_init()
36 memcpy(&adap->props, &d->props.adapter[n], sizeof(struct dvb_usb_adapter_properties)); in dvb_usb_adapter_init()
41 if (d->udev->speed == USB_SPEED_FULL && !(props->caps & DVB_USB_ADAP_HAS_PID_FILTER)) { in dvb_usb_adapter_init()
46 if ((d->udev->speed == USB_SPEED_FULL && props->caps & DVB_USB_ADAP_HAS_PID_FILTER) || in dvb_usb_adapter_init()
48 info("will use the device's hardware PID filter (table count: %d).", props->pid_filter_count); in dvb_usb_adapter_init()
68 err("no memory for priv for adapter %d fe %d.", n, o); in dvb_usb_adapter_init()
77 err("no memory for priv for adapter %d.", n); in dvb_usb_adapter_init()
98 d->num_adapters_initialized++; in dvb_usb_adapter_init()
99 d->state |= DVB_USB_STATE_DVB; in dvb_usb_adapter_init()
106 if (d->props.generic_bulk_ctrl_endpoint != 0) { in dvb_usb_adapter_init()
107 usb_clear_halt(d->udev, usb_sndbulkpipe(d->udev, d->props.generic_bulk_ctrl_endpoint)); in dvb_usb_adapter_init()
108 usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, d->props.generic_bulk_ctrl_endpoint)); in dvb_usb_adapter_init()
120 static int dvb_usb_adapter_exit(struct dvb_usb_device *d) in dvb_usb_adapter_exit() argument
124 for (n = 0; n < d->num_adapters_initialized; n++) { in dvb_usb_adapter_exit()
125 dvb_usb_adapter_frontend_exit(&d->adapter[n]); in dvb_usb_adapter_exit()
126 dvb_usb_adapter_dvb_exit(&d->adapter[n]); in dvb_usb_adapter_exit()
127 dvb_usb_adapter_stream_exit(&d->adapter[n]); in dvb_usb_adapter_exit()
128 kfree(d->adapter[n].priv); in dvb_usb_adapter_exit()
130 d->num_adapters_initialized = 0; in dvb_usb_adapter_exit()
131 d->state &= ~DVB_USB_STATE_DVB; in dvb_usb_adapter_exit()
137 static int dvb_usb_exit(struct dvb_usb_device *d) in dvb_usb_exit() argument
139 deb_info("state before exiting everything: %x\n", d->state); in dvb_usb_exit()
140 dvb_usb_remote_exit(d); in dvb_usb_exit()
141 dvb_usb_adapter_exit(d); in dvb_usb_exit()
142 dvb_usb_i2c_exit(d); in dvb_usb_exit()
143 deb_info("state should be zero now: %x\n", d->state); in dvb_usb_exit()
144 d->state = DVB_USB_STATE_INIT; in dvb_usb_exit()
146 if (d->priv != NULL && d->props.priv_destroy != NULL) in dvb_usb_exit()
147 d->props.priv_destroy(d); in dvb_usb_exit()
149 kfree(d->priv); in dvb_usb_exit()
150 kfree(d); in dvb_usb_exit()
154 static int dvb_usb_init(struct dvb_usb_device *d, short *adapter_nums) in dvb_usb_init() argument
158 mutex_init(&d->data_mutex); in dvb_usb_init()
159 mutex_init(&d->usb_mutex); in dvb_usb_init()
160 mutex_init(&d->i2c_mutex); in dvb_usb_init()
162 d->state = DVB_USB_STATE_INIT; in dvb_usb_init()
164 if (d->props.size_of_priv > 0) { in dvb_usb_init()
165 d->priv = kzalloc(d->props.size_of_priv, GFP_KERNEL); in dvb_usb_init()
166 if (d->priv == NULL) { in dvb_usb_init()
171 if (d->props.priv_init != NULL) { in dvb_usb_init()
172 ret = d->props.priv_init(d); in dvb_usb_init()
179 dvb_usb_device_power_ctrl(d, 1); in dvb_usb_init()
181 ret = dvb_usb_i2c_init(d); in dvb_usb_init()
184 ret = dvb_usb_adapter_init(d, adapter_nums); in dvb_usb_init()
188 if ((ret = dvb_usb_remote_init(d))) in dvb_usb_init()
191 dvb_usb_device_power_ctrl(d, 0); in dvb_usb_init()
196 dvb_usb_adapter_exit(d); in dvb_usb_init()
197 dvb_usb_i2c_exit(d); in dvb_usb_init()
199 if (d->priv && d->props.priv_destroy) in dvb_usb_init()
200 d->props.priv_destroy(d); in dvb_usb_init()
202 kfree(d->priv); in dvb_usb_init()
203 d->priv = NULL; in dvb_usb_init()
247 int dvb_usb_device_power_ctrl(struct dvb_usb_device *d, int onoff) in dvb_usb_device_power_ctrl() argument
250 d->powered++; in dvb_usb_device_power_ctrl()
252 d->powered--; in dvb_usb_device_power_ctrl()
254 …if (d->powered == 0 || (onoff && d->powered == 1)) { /* when switching from 1 to 0 or from 0 to 1 … in dvb_usb_device_power_ctrl()
255 deb_info("power control: %d\n", onoff); in dvb_usb_device_power_ctrl()
256 if (d->props.power_ctrl) in dvb_usb_device_power_ctrl()
257 return d->props.power_ctrl(d, onoff); in dvb_usb_device_power_ctrl()
271 struct dvb_usb_device *d = NULL; in dvb_usb_device_init() local
279 d = kzalloc(sizeof(*d), GFP_KERNEL); in dvb_usb_device_init()
280 if (!d) { in dvb_usb_device_init()
285 memcpy(&d->props, props, sizeof(struct dvb_usb_device_properties)); in dvb_usb_device_init()
287 desc = dvb_usb_find_device(udev, &d->props, &cold); in dvb_usb_device_init()
302 d->udev = udev; in dvb_usb_device_init()
303 d->desc = desc; in dvb_usb_device_init()
304 d->owner = owner; in dvb_usb_device_init()
306 usb_set_intfdata(intf, d); in dvb_usb_device_init()
308 ret = dvb_usb_init(d, adapter_nums); in dvb_usb_device_init()
310 info("%s error while loading driver (%d)", desc->name, ret); in dvb_usb_device_init()
315 *du = d; in dvb_usb_device_init()
322 kfree(d); in dvb_usb_device_init()
329 struct dvb_usb_device *d = usb_get_intfdata(intf); in dvb_usb_device_exit() local
334 if (d != NULL && d->desc != NULL) { in dvb_usb_device_exit()
335 strscpy(name, d->desc->name, sizeof(name)); in dvb_usb_device_exit()
336 dvb_usb_exit(d); in dvb_usb_device_exit()