whcrc 82 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc = uwb_rc->priv; whcrc 83 drivers/staging/uwb/whc-rc.c struct device *dev = &whcrc->umc_dev->dev; whcrc 95 drivers/staging/uwb/whc-rc.c if (le_readl(whcrc->rc_base + URCSTS) & URCSTS_HALTED) { whcrc 101 drivers/staging/uwb/whc-rc.c result = wait_event_timeout(whcrc->cmd_wq, whcrc 102 drivers/staging/uwb/whc-rc.c !(le_readl(whcrc->rc_base + URCCMD) & URCCMD_ACTIVE), HZ/2); whcrc 108 drivers/staging/uwb/whc-rc.c memmove(whcrc->cmd_buf, cmd, cmd_size); whcrc 109 drivers/staging/uwb/whc-rc.c le_writeq(whcrc->cmd_dma_buf, whcrc->rc_base + URCCMDADDR); whcrc 111 drivers/staging/uwb/whc-rc.c spin_lock(&whcrc->irq_lock); whcrc 112 drivers/staging/uwb/whc-rc.c urccmd = le_readl(whcrc->rc_base + URCCMD); whcrc 115 drivers/staging/uwb/whc-rc.c whcrc->rc_base + URCCMD); whcrc 116 drivers/staging/uwb/whc-rc.c spin_unlock(&whcrc->irq_lock); whcrc 123 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc = rc->priv; whcrc 125 drivers/staging/uwb/whc-rc.c return umc_controller_reset(whcrc->umc_dev); whcrc 143 drivers/staging/uwb/whc-rc.c void whcrc_enable_events(struct whcrc *whcrc) whcrc 147 drivers/staging/uwb/whc-rc.c le_writeq(whcrc->evt_dma_buf, whcrc->rc_base + URCEVTADDR); whcrc 149 drivers/staging/uwb/whc-rc.c spin_lock(&whcrc->irq_lock); whcrc 150 drivers/staging/uwb/whc-rc.c urccmd = le_readl(whcrc->rc_base + URCCMD) & ~URCCMD_ACTIVE; whcrc 151 drivers/staging/uwb/whc-rc.c le_writel(urccmd | URCCMD_EARV, whcrc->rc_base + URCCMD); whcrc 152 drivers/staging/uwb/whc-rc.c spin_unlock(&whcrc->irq_lock); whcrc 157 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc = container_of(work, struct whcrc, event_work); whcrc 161 drivers/staging/uwb/whc-rc.c urcevtaddr = le_readq(whcrc->rc_base + URCEVTADDR); whcrc 164 drivers/staging/uwb/whc-rc.c uwb_rc_neh_grok(whcrc->uwb_rc, whcrc->evt_buf, size); whcrc 165 drivers/staging/uwb/whc-rc.c whcrc_enable_events(whcrc); whcrc 177 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc = _whcrc; whcrc 178 drivers/staging/uwb/whc-rc.c struct device *dev = &whcrc->umc_dev->dev; whcrc 181 drivers/staging/uwb/whc-rc.c urcsts = le_readl(whcrc->rc_base + URCSTS); whcrc 184 drivers/staging/uwb/whc-rc.c le_writel(urcsts & URCSTS_INT_MASK, whcrc->rc_base + URCSTS); whcrc 192 drivers/staging/uwb/whc-rc.c schedule_work(&whcrc->event_work); whcrc 194 drivers/staging/uwb/whc-rc.c wake_up_all(&whcrc->cmd_wq); whcrc 204 drivers/staging/uwb/whc-rc.c int whcrc_setup_rc_umc(struct whcrc *whcrc) whcrc 207 drivers/staging/uwb/whc-rc.c struct device *dev = &whcrc->umc_dev->dev; whcrc 208 drivers/staging/uwb/whc-rc.c struct umc_dev *umc_dev = whcrc->umc_dev; whcrc 210 drivers/staging/uwb/whc-rc.c whcrc->area = umc_dev->resource.start; whcrc 211 drivers/staging/uwb/whc-rc.c whcrc->rc_len = resource_size(&umc_dev->resource); whcrc 213 drivers/staging/uwb/whc-rc.c if (request_mem_region(whcrc->area, whcrc->rc_len, KBUILD_MODNAME) == NULL) { whcrc 215 drivers/staging/uwb/whc-rc.c whcrc->rc_len, whcrc->area, result); whcrc 219 drivers/staging/uwb/whc-rc.c whcrc->rc_base = ioremap_nocache(whcrc->area, whcrc->rc_len); whcrc 220 drivers/staging/uwb/whc-rc.c if (whcrc->rc_base == NULL) { whcrc 222 drivers/staging/uwb/whc-rc.c whcrc->rc_len, whcrc->area, result); whcrc 227 drivers/staging/uwb/whc-rc.c KBUILD_MODNAME, whcrc); whcrc 235 drivers/staging/uwb/whc-rc.c whcrc->cmd_buf = dma_alloc_coherent(&umc_dev->dev, PAGE_SIZE, whcrc 236 drivers/staging/uwb/whc-rc.c &whcrc->cmd_dma_buf, GFP_KERNEL); whcrc 237 drivers/staging/uwb/whc-rc.c if (whcrc->cmd_buf == NULL) { whcrc 242 drivers/staging/uwb/whc-rc.c whcrc->evt_buf = dma_alloc_coherent(&umc_dev->dev, PAGE_SIZE, whcrc 243 drivers/staging/uwb/whc-rc.c &whcrc->evt_dma_buf, GFP_KERNEL); whcrc 244 drivers/staging/uwb/whc-rc.c if (whcrc->evt_buf == NULL) { whcrc 251 drivers/staging/uwb/whc-rc.c dma_free_coherent(&umc_dev->dev, PAGE_SIZE, whcrc->cmd_buf, whcrc 252 drivers/staging/uwb/whc-rc.c whcrc->cmd_dma_buf); whcrc 254 drivers/staging/uwb/whc-rc.c free_irq(umc_dev->irq, whcrc); whcrc 256 drivers/staging/uwb/whc-rc.c iounmap(whcrc->rc_base); whcrc 258 drivers/staging/uwb/whc-rc.c release_mem_region(whcrc->area, whcrc->rc_len); whcrc 268 drivers/staging/uwb/whc-rc.c void whcrc_release_rc_umc(struct whcrc *whcrc) whcrc 270 drivers/staging/uwb/whc-rc.c struct umc_dev *umc_dev = whcrc->umc_dev; whcrc 272 drivers/staging/uwb/whc-rc.c dma_free_coherent(&umc_dev->dev, PAGE_SIZE, whcrc->evt_buf, whcrc 273 drivers/staging/uwb/whc-rc.c whcrc->evt_dma_buf); whcrc 274 drivers/staging/uwb/whc-rc.c dma_free_coherent(&umc_dev->dev, PAGE_SIZE, whcrc->cmd_buf, whcrc 275 drivers/staging/uwb/whc-rc.c whcrc->cmd_dma_buf); whcrc 276 drivers/staging/uwb/whc-rc.c free_irq(umc_dev->irq, whcrc); whcrc 277 drivers/staging/uwb/whc-rc.c iounmap(whcrc->rc_base); whcrc 278 drivers/staging/uwb/whc-rc.c release_mem_region(whcrc->area, whcrc->rc_len); whcrc 291 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc = rc->priv; whcrc 292 drivers/staging/uwb/whc-rc.c struct device *dev = &whcrc->umc_dev->dev; whcrc 295 drivers/staging/uwb/whc-rc.c le_writel(URCCMD_RESET, whcrc->rc_base + URCCMD); whcrc 296 drivers/staging/uwb/whc-rc.c if (whci_wait_for(dev, whcrc->rc_base + URCCMD, URCCMD_RESET, 0, whcrc 301 drivers/staging/uwb/whc-rc.c le_writel(0, whcrc->rc_base + URCINTR); whcrc 302 drivers/staging/uwb/whc-rc.c le_writel(URCCMD_RS, whcrc->rc_base + URCCMD); whcrc 303 drivers/staging/uwb/whc-rc.c if (whci_wait_for(dev, whcrc->rc_base + URCSTS, URCSTS_HALTED, 0, whcrc 306 drivers/staging/uwb/whc-rc.c whcrc_enable_events(whcrc); whcrc 307 drivers/staging/uwb/whc-rc.c le_writel(URCINTR_EN_ALL, whcrc->rc_base + URCINTR); whcrc 322 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc = rc->priv; whcrc 323 drivers/staging/uwb/whc-rc.c struct umc_dev *umc_dev = whcrc->umc_dev; whcrc 325 drivers/staging/uwb/whc-rc.c le_writel(0, whcrc->rc_base + URCINTR); whcrc 326 drivers/staging/uwb/whc-rc.c cancel_work_sync(&whcrc->event_work); whcrc 328 drivers/staging/uwb/whc-rc.c le_writel(0, whcrc->rc_base + URCCMD); whcrc 329 drivers/staging/uwb/whc-rc.c whci_wait_for(&umc_dev->dev, whcrc->rc_base + URCSTS, whcrc 333 drivers/staging/uwb/whc-rc.c static void whcrc_init(struct whcrc *whcrc) whcrc 335 drivers/staging/uwb/whc-rc.c spin_lock_init(&whcrc->irq_lock); whcrc 336 drivers/staging/uwb/whc-rc.c init_waitqueue_head(&whcrc->cmd_wq); whcrc 337 drivers/staging/uwb/whc-rc.c INIT_WORK(&whcrc->event_work, whcrc_event_work); whcrc 353 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc; whcrc 362 drivers/staging/uwb/whc-rc.c whcrc = kzalloc(sizeof(*whcrc), GFP_KERNEL); whcrc 363 drivers/staging/uwb/whc-rc.c if (whcrc == NULL) { whcrc 367 drivers/staging/uwb/whc-rc.c whcrc_init(whcrc); whcrc 368 drivers/staging/uwb/whc-rc.c whcrc->umc_dev = umc_dev; whcrc 370 drivers/staging/uwb/whc-rc.c result = whcrc_setup_rc_umc(whcrc); whcrc 375 drivers/staging/uwb/whc-rc.c whcrc->uwb_rc = uwb_rc; whcrc 383 drivers/staging/uwb/whc-rc.c result = uwb_rc_add(uwb_rc, dev, whcrc); whcrc 386 drivers/staging/uwb/whc-rc.c umc_set_drvdata(umc_dev, whcrc); whcrc 390 drivers/staging/uwb/whc-rc.c whcrc_release_rc_umc(whcrc); whcrc 392 drivers/staging/uwb/whc-rc.c kfree(whcrc); whcrc 410 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc = umc_get_drvdata(umc_dev); whcrc 411 drivers/staging/uwb/whc-rc.c struct uwb_rc *uwb_rc = whcrc->uwb_rc; whcrc 415 drivers/staging/uwb/whc-rc.c whcrc_release_rc_umc(whcrc); whcrc 416 drivers/staging/uwb/whc-rc.c kfree(whcrc); whcrc 422 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc = umc_get_drvdata(umc); whcrc 423 drivers/staging/uwb/whc-rc.c struct uwb_rc *uwb_rc = whcrc->uwb_rc; whcrc 431 drivers/staging/uwb/whc-rc.c struct whcrc *whcrc = umc_get_drvdata(umc); whcrc 432 drivers/staging/uwb/whc-rc.c struct uwb_rc *uwb_rc = whcrc->uwb_rc;