Lines Matching refs:ipcdev
106 static struct intel_scu_ipc_dev ipcdev; /* Only one for now */ variable
128 if (ipcdev.irq_mode) { in ipc_command()
129 reinit_completion(&ipcdev.cmd_complete); in ipc_command()
130 writel(cmd | IPC_IOC, ipcdev.ipc_base); in ipc_command()
132 writel(cmd, ipcdev.ipc_base); in ipc_command()
142 writel(data, ipcdev.ipc_base + 0x80 + offset); in ipc_data_writel()
154 return __raw_readl(ipcdev.ipc_base + 0x04); in ipc_read_status()
159 return readb(ipcdev.ipc_base + IPC_READ_BUFFER + offset); in ipc_data_readb()
164 return readl(ipcdev.ipc_base + IPC_READ_BUFFER + offset); in ipc_data_readl()
180 dev_err(&ipcdev.pdev->dev, "IPC timed out"); in busy_loop()
195 if (!wait_for_completion_timeout(&ipcdev.cmd_complete, 3 * HZ)) { in ipc_wait_for_interrupt()
196 struct device *dev = &ipcdev.pdev->dev; in ipc_wait_for_interrupt()
210 return ipcdev.irq_mode ? ipc_wait_for_interrupt() : busy_loop(); in intel_scu_ipc_check_status()
226 if (ipcdev.pdev == NULL) { in pwr_reg_rdwr()
256 memcpy_fromio(cbuf, ipcdev.ipc_base + 0x90, 16); in pwr_reg_rdwr()
442 if (ipcdev.pdev == NULL) { in intel_scu_ipc_simple_command()
471 if (ipcdev.pdev == NULL) { in intel_scu_ipc_command()
513 if (ipcdev.pdev == NULL) { in intel_scu_ipc_i2c_cntrl()
519 writel(addr, ipcdev.i2c_base + IPC_I2C_CNTRL_ADDR); in intel_scu_ipc_i2c_cntrl()
522 *data = readl(ipcdev.i2c_base + I2C_DATA_ADDR); in intel_scu_ipc_i2c_cntrl()
524 writel(*data, ipcdev.i2c_base + I2C_DATA_ADDR); in intel_scu_ipc_i2c_cntrl()
526 writel(addr, ipcdev.i2c_base + IPC_I2C_CNTRL_ADDR); in intel_scu_ipc_i2c_cntrl()
528 dev_err(&ipcdev.pdev->dev, in intel_scu_ipc_i2c_cntrl()
548 if (ipcdev.irq_mode) in ioc()
549 complete(&ipcdev.cmd_complete); in ioc()
568 if (ipcdev.pdev) /* We support only one SCU */ in ipc_probe()
573 ipcdev.pdev = pci_dev_get(dev); in ipc_probe()
574 ipcdev.irq_mode = pdata->irq_mode; in ipc_probe()
588 init_completion(&ipcdev.cmd_complete); in ipc_probe()
590 if (request_irq(dev->irq, ioc, 0, "intel_scu_ipc", &ipcdev)) in ipc_probe()
593 ipcdev.ipc_base = ioremap_nocache(base, pci_resource_len(dev, 0)); in ipc_probe()
594 if (!ipcdev.ipc_base) in ipc_probe()
597 ipcdev.i2c_base = ioremap_nocache(pdata->i2c_base, pdata->i2c_len); in ipc_probe()
598 if (!ipcdev.i2c_base) { in ipc_probe()
599 iounmap(ipcdev.ipc_base); in ipc_probe()
620 free_irq(pdev->irq, &ipcdev); in ipc_remove()
622 pci_dev_put(ipcdev.pdev); in ipc_remove()
623 iounmap(ipcdev.ipc_base); in ipc_remove()
624 iounmap(ipcdev.i2c_base); in ipc_remove()
625 ipcdev.pdev = NULL; in ipc_remove()