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;