Lines Matching defs:func
45 struct sdio_func *func;
77 err = sdio_writesb(data->func, REG_TDAT, skb->data, skb->len);
80 sdio_writeb(data->func, 0x01, REG_PC_WRT, NULL);
99 sdio_claim_host(data->func);
110 sdio_release_host(data->func);
121 err = sdio_readsb(data->func, hdr, REG_RDAT, 4);
140 err = sdio_readsb(data->func, skb->data, REG_RDAT, len - 4);
163 sdio_writeb(data->func, 0x00, REG_PC_RRT, NULL);
168 static void btsdio_interrupt(struct sdio_func *func)
170 struct btsdio_data *data = sdio_get_drvdata(func);
175 intrd = sdio_readb(func, REG_INTRD, NULL);
177 sdio_writeb(func, 0x01, REG_CL_INTRD, NULL);
181 sdio_writeb(data->func, 0x01, REG_PC_RRT, NULL);
193 sdio_claim_host(data->func);
195 err = sdio_enable_func(data->func);
199 err = sdio_claim_irq(data->func, btsdio_interrupt);
201 sdio_disable_func(data->func);
205 if (data->func->class == SDIO_CLASS_BT_B)
206 sdio_writeb(data->func, 0x00, REG_MD_SET, NULL);
208 sdio_writeb(data->func, 0x01, REG_EN_INTRD, NULL);
211 sdio_release_host(data->func);
222 sdio_claim_host(data->func);
224 sdio_writeb(data->func, 0x00, REG_EN_INTRD, NULL);
226 sdio_release_irq(data->func);
227 sdio_disable_func(data->func);
229 sdio_release_host(data->func);
275 static int btsdio_probe(struct sdio_func *func,
280 struct sdio_func_tuple *tuple = func->tuples;
283 BT_DBG("func %p id %p class 0x%04x", func, id, func->class);
293 if (func->vendor == SDIO_VENDOR_ID_BROADCOM &&
294 !mmc_card_is_removable(func->card->host)) {
295 switch (func->device) {
303 data = devm_kzalloc(&func->dev, sizeof(*data), GFP_KERNEL);
307 data->func = func;
327 SET_HCIDEV_DEV(hdev, &func->dev);
334 if (func->vendor == 0x0104 && func->device == 0x00c5)
343 sdio_set_drvdata(func, data);
348 static void btsdio_remove(struct sdio_func *func)
350 struct btsdio_data *data = sdio_get_drvdata(func);
353 BT_DBG("func %p", func);
361 sdio_set_drvdata(func, NULL);