Lines Matching refs:mdev
32 mic_x100_write_spad(struct mic_device *mdev, unsigned int idx, u32 val) in mic_x100_write_spad() argument
34 dev_dbg(&mdev->pdev->dev, "Writing 0x%x to scratch pad index %d\n", in mic_x100_write_spad()
36 mic_mmio_write(&mdev->mmio, val, in mic_x100_write_spad()
51 mic_x100_read_spad(struct mic_device *mdev, unsigned int idx) in mic_x100_read_spad() argument
53 u32 val = mic_mmio_read(&mdev->mmio, in mic_x100_read_spad()
57 dev_dbg(&mdev->pdev->dev, in mic_x100_read_spad()
66 static void mic_x100_enable_interrupts(struct mic_device *mdev) in mic_x100_enable_interrupts() argument
69 struct mic_mw *mw = &mdev->mmio; in mic_x100_enable_interrupts()
81 if (mdev->irq_info.num_vectors > 1) { in mic_x100_enable_interrupts()
93 static void mic_x100_disable_interrupts(struct mic_device *mdev) in mic_x100_disable_interrupts() argument
96 struct mic_mw *mw = &mdev->mmio; in mic_x100_disable_interrupts()
104 if (mdev->irq_info.num_vectors > 1) { in mic_x100_disable_interrupts()
116 static void mic_x100_send_sbox_intr(struct mic_device *mdev, in mic_x100_send_sbox_intr() argument
119 struct mic_mw *mw = &mdev->mmio; in mic_x100_send_sbox_intr()
137 static void mic_x100_send_rdmasr_intr(struct mic_device *mdev, in mic_x100_send_rdmasr_intr() argument
143 mic_mmio_write(&mdev->mmio, 0, in mic_x100_send_rdmasr_intr()
152 static void mic_x100_send_intr(struct mic_device *mdev, int doorbell) in mic_x100_send_intr() argument
156 mic_x100_send_sbox_intr(mdev, doorbell); in mic_x100_send_intr()
159 mic_x100_send_rdmasr_intr(mdev, rdmasr_db); in mic_x100_send_intr()
170 static u32 mic_x100_ack_interrupt(struct mic_device *mdev) in mic_x100_ack_interrupt() argument
173 u32 reg = mic_mmio_read(&mdev->mmio, sicr0); in mic_x100_ack_interrupt()
174 mic_mmio_write(&mdev->mmio, reg, sicr0); in mic_x100_ack_interrupt()
185 static void mic_x100_intr_workarounds(struct mic_device *mdev) in mic_x100_intr_workarounds() argument
187 struct mic_mw *mw = &mdev->mmio; in mic_x100_intr_workarounds()
190 if (MIC_A0_STEP == mdev->stepping) in mic_x100_intr_workarounds()
194 if (mdev->stepping >= MIC_B0_STEP) in mic_x100_intr_workarounds()
195 mdev->intr_ops->enable_interrupts(mdev); in mic_x100_intr_workarounds()
203 static void mic_x100_hw_intr_init(struct mic_device *mdev) in mic_x100_hw_intr_init() argument
205 mdev->intr_info = (struct mic_intr_info *)mic_x100_intr_init; in mic_x100_hw_intr_init()
218 mic_x100_read_msi_to_src_map(struct mic_device *mdev, int idx) in mic_x100_read_msi_to_src_map() argument
220 return mic_mmio_read(&mdev->mmio, in mic_x100_read_msi_to_src_map()
236 mic_x100_program_msi_to_src_map(struct mic_device *mdev, in mic_x100_program_msi_to_src_map() argument
240 struct mic_mw *mw = &mdev->mmio; in mic_x100_program_msi_to_src_map()
256 static void mic_x100_reset_fw_ready(struct mic_device *mdev) in mic_x100_reset_fw_ready() argument
258 mdev->ops->write_spad(mdev, MIC_X100_DOWNLOAD_INFO, 0); in mic_x100_reset_fw_ready()
265 static bool mic_x100_is_fw_ready(struct mic_device *mdev) in mic_x100_is_fw_ready() argument
267 u32 scratch2 = mdev->ops->read_spad(mdev, MIC_X100_DOWNLOAD_INFO); in mic_x100_is_fw_ready()
275 static u32 mic_x100_get_apic_id(struct mic_device *mdev) in mic_x100_get_apic_id() argument
279 scratch2 = mdev->ops->read_spad(mdev, MIC_X100_DOWNLOAD_INFO); in mic_x100_get_apic_id()
287 static void mic_x100_send_firmware_intr(struct mic_device *mdev) in mic_x100_send_firmware_intr() argument
292 struct mic_mw *mw = &mdev->mmio; in mic_x100_send_firmware_intr()
300 mic_mmio_write(mw, mic_x100_get_apic_id(mdev), in mic_x100_send_firmware_intr()
313 static void mic_x100_hw_reset(struct mic_device *mdev) in mic_x100_hw_reset() argument
317 struct mic_mw *mw = &mdev->mmio; in mic_x100_hw_reset()
340 mic_x100_load_command_line(struct mic_device *mdev, const struct firmware *fw) in mic_x100_load_command_line() argument
345 void __iomem *cmd_line_va = mdev->aper.va + mdev->bootaddr + fw->size; in mic_x100_load_command_line()
348 boot_mem = mdev->aper.len >> 20; in mic_x100_load_command_line()
355 if (mdev->cosm_dev->cmdline) in mic_x100_load_command_line()
357 mdev->cosm_dev->cmdline); in mic_x100_load_command_line()
370 mic_x100_load_ramdisk(struct mic_device *mdev) in mic_x100_load_ramdisk() argument
374 struct boot_params __iomem *bp = mdev->aper.va + mdev->bootaddr; in mic_x100_load_ramdisk()
376 rc = request_firmware(&fw, mdev->cosm_dev->ramdisk, &mdev->pdev->dev); in mic_x100_load_ramdisk()
378 dev_err(&mdev->pdev->dev, in mic_x100_load_ramdisk()
380 rc, mdev->cosm_dev->ramdisk); in mic_x100_load_ramdisk()
387 memcpy_toio(mdev->aper.va + (mdev->bootaddr << 1), fw->data, fw->size); in mic_x100_load_ramdisk()
388 iowrite32(mdev->bootaddr << 1, &bp->hdr.ramdisk_image); in mic_x100_load_ramdisk()
405 mic_x100_get_boot_addr(struct mic_device *mdev) in mic_x100_get_boot_addr() argument
410 scratch2 = mdev->ops->read_spad(mdev, MIC_X100_DOWNLOAD_INFO); in mic_x100_get_boot_addr()
412 dev_dbg(&mdev->pdev->dev, "%s %d boot_addr 0x%x\n", in mic_x100_get_boot_addr()
415 dev_err(&mdev->pdev->dev, in mic_x100_get_boot_addr()
421 mdev->bootaddr = boot_addr; in mic_x100_get_boot_addr()
434 mic_x100_load_firmware(struct mic_device *mdev, const char *buf) in mic_x100_load_firmware() argument
439 rc = mic_x100_get_boot_addr(mdev); in mic_x100_load_firmware()
443 rc = request_firmware(&fw, mdev->cosm_dev->firmware, &mdev->pdev->dev); in mic_x100_load_firmware()
445 dev_err(&mdev->pdev->dev, in mic_x100_load_firmware()
447 rc, mdev->cosm_dev->firmware); in mic_x100_load_firmware()
450 if (mdev->bootaddr > mdev->aper.len - fw->size) { in mic_x100_load_firmware()
452 dev_err(&mdev->pdev->dev, "%s %d rc %d bootaddr 0x%x\n", in mic_x100_load_firmware()
453 __func__, __LINE__, rc, mdev->bootaddr); in mic_x100_load_firmware()
456 memcpy_toio(mdev->aper.va + mdev->bootaddr, fw->data, fw->size); in mic_x100_load_firmware()
457 mdev->ops->write_spad(mdev, MIC_X100_FW_SIZE, fw->size); in mic_x100_load_firmware()
458 if (!strcmp(mdev->cosm_dev->bootmode, "flash")) { in mic_x100_load_firmware()
460 dev_err(&mdev->pdev->dev, "%s %d rc %d\n", in mic_x100_load_firmware()
465 rc = mic_x100_load_command_line(mdev, fw); in mic_x100_load_firmware()
467 dev_err(&mdev->pdev->dev, "%s %d rc %d\n", in mic_x100_load_firmware()
473 if (mdev->cosm_dev->ramdisk) in mic_x100_load_firmware()
474 rc = mic_x100_load_ramdisk(mdev); in mic_x100_load_firmware()
489 static u32 mic_x100_get_postcode(struct mic_device *mdev) in mic_x100_get_postcode() argument
491 return mic_mmio_read(&mdev->mmio, MIC_X100_POSTCODE); in mic_x100_get_postcode()
501 mic_x100_smpt_set(struct mic_device *mdev, dma_addr_t dma_addr, u8 index) in mic_x100_smpt_set() argument
515 dma_addr >> mdev->smpt->info.page_shift); in mic_x100_smpt_set()
516 mic_mmio_write(&mdev->mmio, smpt_reg_val, in mic_x100_smpt_set()
527 static void mic_x100_smpt_hw_init(struct mic_device *mdev) in mic_x100_smpt_hw_init() argument
529 struct mic_smpt_hw_info *info = &mdev->smpt->info; in mic_x100_smpt_hw_init()