Lines Matching full:d
29 static int dvb_usb_adapter_init(struct dvb_usb_device *d, short *adapter_nrs) in dvb_usb_adapter_init() argument
34 for (n = 0; n < d->props.num_adapters; n++) { in dvb_usb_adapter_init()
35 adap = &d->adapter[n]; in dvb_usb_adapter_init()
36 adap->dev = d; in dvb_usb_adapter_init()
39 memcpy(&adap->props, &d->props.adapter[n], sizeof(struct dvb_usb_adapter_properties)); in dvb_usb_adapter_init()
44 if (d->udev->speed == USB_SPEED_FULL && !(props->caps & DVB_USB_ADAP_HAS_PID_FILTER)) { in dvb_usb_adapter_init()
49 if ((d->udev->speed == USB_SPEED_FULL && props->caps & DVB_USB_ADAP_HAS_PID_FILTER) || in dvb_usb_adapter_init()
51 info("will use the device's hardware PID filter (table count: %d).", props->pid_filter_count); in dvb_usb_adapter_init()
71 err("no memory for priv for adapter %d fe %d.", n, o); in dvb_usb_adapter_init()
80 err("no memory for priv for adapter %d.", n); in dvb_usb_adapter_init()
95 d->num_adapters_initialized++; in dvb_usb_adapter_init()
96 d->state |= DVB_USB_STATE_DVB; in dvb_usb_adapter_init()
103 if (d->props.generic_bulk_ctrl_endpoint != 0) { in dvb_usb_adapter_init()
104 usb_clear_halt(d->udev, usb_sndbulkpipe(d->udev, d->props.generic_bulk_ctrl_endpoint)); in dvb_usb_adapter_init()
105 usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, d->props.generic_bulk_ctrl_endpoint)); in dvb_usb_adapter_init()
111 static int dvb_usb_adapter_exit(struct dvb_usb_device *d) in dvb_usb_adapter_exit() argument
115 for (n = 0; n < d->num_adapters_initialized; n++) { in dvb_usb_adapter_exit()
116 dvb_usb_adapter_frontend_exit(&d->adapter[n]); in dvb_usb_adapter_exit()
117 dvb_usb_adapter_dvb_exit(&d->adapter[n]); in dvb_usb_adapter_exit()
118 dvb_usb_adapter_stream_exit(&d->adapter[n]); in dvb_usb_adapter_exit()
119 kfree(d->adapter[n].priv); in dvb_usb_adapter_exit()
121 d->num_adapters_initialized = 0; in dvb_usb_adapter_exit()
122 d->state &= ~DVB_USB_STATE_DVB; in dvb_usb_adapter_exit()
128 static int dvb_usb_exit(struct dvb_usb_device *d) in dvb_usb_exit() argument
130 deb_info("state before exiting everything: %x\n", d->state); in dvb_usb_exit()
131 dvb_usb_remote_exit(d); in dvb_usb_exit()
132 dvb_usb_adapter_exit(d); in dvb_usb_exit()
133 dvb_usb_i2c_exit(d); in dvb_usb_exit()
134 deb_info("state should be zero now: %x\n", d->state); in dvb_usb_exit()
135 d->state = DVB_USB_STATE_INIT; in dvb_usb_exit()
136 kfree(d->priv); in dvb_usb_exit()
137 kfree(d); in dvb_usb_exit()
141 static int dvb_usb_init(struct dvb_usb_device *d, short *adapter_nums) in dvb_usb_init() argument
145 mutex_init(&d->usb_mutex); in dvb_usb_init()
146 mutex_init(&d->i2c_mutex); in dvb_usb_init()
148 d->state = DVB_USB_STATE_INIT; in dvb_usb_init()
150 if (d->props.size_of_priv > 0) { in dvb_usb_init()
151 d->priv = kzalloc(d->props.size_of_priv, GFP_KERNEL); in dvb_usb_init()
152 if (d->priv == NULL) { in dvb_usb_init()
159 dvb_usb_device_power_ctrl(d, 1); in dvb_usb_init()
161 if ((ret = dvb_usb_i2c_init(d)) || in dvb_usb_init()
162 (ret = dvb_usb_adapter_init(d, adapter_nums))) { in dvb_usb_init()
163 dvb_usb_exit(d); in dvb_usb_init()
167 if ((ret = dvb_usb_remote_init(d))) in dvb_usb_init()
170 dvb_usb_device_power_ctrl(d, 0); in dvb_usb_init()
215 int dvb_usb_device_power_ctrl(struct dvb_usb_device *d, int onoff) in dvb_usb_device_power_ctrl() argument
218 d->powered++; in dvb_usb_device_power_ctrl()
220 d->powered--; in dvb_usb_device_power_ctrl()
222 …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()
223 deb_info("power control: %d\n", onoff); in dvb_usb_device_power_ctrl()
224 if (d->props.power_ctrl) in dvb_usb_device_power_ctrl()
225 return d->props.power_ctrl(d, onoff); in dvb_usb_device_power_ctrl()
239 struct dvb_usb_device *d = NULL; in dvb_usb_device_init() local
260 d = kzalloc(sizeof(struct dvb_usb_device), GFP_KERNEL); in dvb_usb_device_init()
261 if (d == NULL) { in dvb_usb_device_init()
266 d->udev = udev; in dvb_usb_device_init()
267 memcpy(&d->props, props, sizeof(struct dvb_usb_device_properties)); in dvb_usb_device_init()
268 d->desc = desc; in dvb_usb_device_init()
269 d->owner = owner; in dvb_usb_device_init()
271 usb_set_intfdata(intf, d); in dvb_usb_device_init()
274 *du = d; in dvb_usb_device_init()
276 ret = dvb_usb_init(d, adapter_nums); in dvb_usb_device_init()
281 info("%s error while loading driver (%d)", desc->name, ret); in dvb_usb_device_init()
288 struct dvb_usb_device *d = usb_get_intfdata(intf); in dvb_usb_device_exit() local
292 if (d != NULL && d->desc != NULL) { in dvb_usb_device_exit()
293 name = d->desc->name; in dvb_usb_device_exit()
294 dvb_usb_exit(d); in dvb_usb_device_exit()