Lines Matching refs:mdev
44 mic_x100_write_spad(struct mic_device *mdev, unsigned int idx, u32 val) in mic_x100_write_spad() argument
46 dev_dbg(mdev->sdev->parent, "Writing 0x%x to scratch pad index %d\n", in mic_x100_write_spad()
48 mic_mmio_write(&mdev->mmio, val, in mic_x100_write_spad()
63 mic_x100_read_spad(struct mic_device *mdev, unsigned int idx) in mic_x100_read_spad() argument
65 u32 val = mic_mmio_read(&mdev->mmio, in mic_x100_read_spad()
69 dev_dbg(mdev->sdev->parent, in mic_x100_read_spad()
78 static void mic_x100_enable_interrupts(struct mic_device *mdev) in mic_x100_enable_interrupts() argument
81 struct mic_mw *mw = &mdev->mmio; in mic_x100_enable_interrupts()
93 if (mdev->irq_info.num_vectors > 1) { in mic_x100_enable_interrupts()
105 static void mic_x100_disable_interrupts(struct mic_device *mdev) in mic_x100_disable_interrupts() argument
108 struct mic_mw *mw = &mdev->mmio; in mic_x100_disable_interrupts()
116 if (mdev->irq_info.num_vectors > 1) { in mic_x100_disable_interrupts()
128 static void mic_x100_send_sbox_intr(struct mic_device *mdev, in mic_x100_send_sbox_intr() argument
131 struct mic_mw *mw = &mdev->mmio; in mic_x100_send_sbox_intr()
149 static void mic_x100_send_rdmasr_intr(struct mic_device *mdev, in mic_x100_send_rdmasr_intr() argument
155 mic_mmio_write(&mdev->mmio, 0, in mic_x100_send_rdmasr_intr()
164 static void mic_x100_send_intr(struct mic_device *mdev, int doorbell) in mic_x100_send_intr() argument
168 mic_x100_send_sbox_intr(mdev, doorbell); in mic_x100_send_intr()
172 mic_x100_send_rdmasr_intr(mdev, rdmasr_db); in mic_x100_send_intr()
183 static u32 mic_x100_ack_interrupt(struct mic_device *mdev) in mic_x100_ack_interrupt() argument
186 u32 reg = mic_mmio_read(&mdev->mmio, sicr0); in mic_x100_ack_interrupt()
187 mic_mmio_write(&mdev->mmio, reg, sicr0); in mic_x100_ack_interrupt()
198 static void mic_x100_intr_workarounds(struct mic_device *mdev) in mic_x100_intr_workarounds() argument
200 struct mic_mw *mw = &mdev->mmio; in mic_x100_intr_workarounds()
203 if (MIC_A0_STEP == mdev->stepping) in mic_x100_intr_workarounds()
207 if (mdev->stepping >= MIC_B0_STEP) in mic_x100_intr_workarounds()
208 mdev->intr_ops->enable_interrupts(mdev); in mic_x100_intr_workarounds()
216 static void mic_x100_hw_intr_init(struct mic_device *mdev) in mic_x100_hw_intr_init() argument
218 mdev->intr_info = (struct mic_intr_info *)mic_x100_intr_init; in mic_x100_hw_intr_init()
231 mic_x100_read_msi_to_src_map(struct mic_device *mdev, int idx) in mic_x100_read_msi_to_src_map() argument
233 return mic_mmio_read(&mdev->mmio, in mic_x100_read_msi_to_src_map()
249 mic_x100_program_msi_to_src_map(struct mic_device *mdev, in mic_x100_program_msi_to_src_map() argument
253 struct mic_mw *mw = &mdev->mmio; in mic_x100_program_msi_to_src_map()
269 static void mic_x100_reset_fw_ready(struct mic_device *mdev) in mic_x100_reset_fw_ready() argument
271 mdev->ops->write_spad(mdev, MIC_X100_DOWNLOAD_INFO, 0); in mic_x100_reset_fw_ready()
278 static bool mic_x100_is_fw_ready(struct mic_device *mdev) in mic_x100_is_fw_ready() argument
280 u32 scratch2 = mdev->ops->read_spad(mdev, MIC_X100_DOWNLOAD_INFO); in mic_x100_is_fw_ready()
288 static u32 mic_x100_get_apic_id(struct mic_device *mdev) in mic_x100_get_apic_id() argument
292 scratch2 = mdev->ops->read_spad(mdev, MIC_X100_DOWNLOAD_INFO); in mic_x100_get_apic_id()
300 static void mic_x100_send_firmware_intr(struct mic_device *mdev) in mic_x100_send_firmware_intr() argument
305 struct mic_mw *mw = &mdev->mmio; in mic_x100_send_firmware_intr()
313 mic_mmio_write(mw, mic_x100_get_apic_id(mdev), in mic_x100_send_firmware_intr()
326 static void mic_x100_hw_reset(struct mic_device *mdev) in mic_x100_hw_reset() argument
330 struct mic_mw *mw = &mdev->mmio; in mic_x100_hw_reset()
353 mic_x100_load_command_line(struct mic_device *mdev, const struct firmware *fw) in mic_x100_load_command_line() argument
358 void __iomem *cmd_line_va = mdev->aper.va + mdev->bootaddr + fw->size; in mic_x100_load_command_line()
361 boot_mem = mdev->aper.len >> 20; in mic_x100_load_command_line()
364 dev_err(mdev->sdev->parent, in mic_x100_load_command_line()
370 if (mdev->cmdline) in mic_x100_load_command_line()
371 snprintf(buf + len, CMDLINE_SIZE - len, " %s", mdev->cmdline); in mic_x100_load_command_line()
384 mic_x100_load_ramdisk(struct mic_device *mdev) in mic_x100_load_ramdisk() argument
388 struct boot_params __iomem *bp = mdev->aper.va + mdev->bootaddr; in mic_x100_load_ramdisk()
391 mdev->ramdisk, mdev->sdev->parent); in mic_x100_load_ramdisk()
393 dev_err(mdev->sdev->parent, in mic_x100_load_ramdisk()
395 rc, mdev->ramdisk); in mic_x100_load_ramdisk()
402 memcpy_toio(mdev->aper.va + (mdev->bootaddr << 1), fw->data, fw->size); in mic_x100_load_ramdisk()
403 iowrite32(mdev->bootaddr << 1, &bp->hdr.ramdisk_image); in mic_x100_load_ramdisk()
420 mic_x100_get_boot_addr(struct mic_device *mdev) in mic_x100_get_boot_addr() argument
425 scratch2 = mdev->ops->read_spad(mdev, MIC_X100_DOWNLOAD_INFO); in mic_x100_get_boot_addr()
427 dev_dbg(mdev->sdev->parent, "%s %d boot_addr 0x%x\n", in mic_x100_get_boot_addr()
430 dev_err(mdev->sdev->parent, in mic_x100_get_boot_addr()
436 mdev->bootaddr = boot_addr; in mic_x100_get_boot_addr()
449 mic_x100_load_firmware(struct mic_device *mdev, const char *buf) in mic_x100_load_firmware() argument
454 rc = mic_x100_get_boot_addr(mdev); in mic_x100_load_firmware()
458 rc = request_firmware(&fw, mdev->firmware, mdev->sdev->parent); in mic_x100_load_firmware()
460 dev_err(mdev->sdev->parent, in mic_x100_load_firmware()
462 rc, mdev->firmware); in mic_x100_load_firmware()
465 if (mdev->bootaddr > mdev->aper.len - fw->size) { in mic_x100_load_firmware()
467 dev_err(mdev->sdev->parent, "%s %d rc %d bootaddr 0x%x\n", in mic_x100_load_firmware()
468 __func__, __LINE__, rc, mdev->bootaddr); in mic_x100_load_firmware()
472 memcpy_toio(mdev->aper.va + mdev->bootaddr, fw->data, fw->size); in mic_x100_load_firmware()
473 mdev->ops->write_spad(mdev, MIC_X100_FW_SIZE, fw->size); in mic_x100_load_firmware()
474 if (!strcmp(mdev->bootmode, "elf")) in mic_x100_load_firmware()
477 rc = mic_x100_load_command_line(mdev, fw); in mic_x100_load_firmware()
479 dev_err(mdev->sdev->parent, "%s %d rc %d\n", in mic_x100_load_firmware()
485 if (mdev->ramdisk) in mic_x100_load_firmware()
486 rc = mic_x100_load_ramdisk(mdev); in mic_x100_load_firmware()
488 dev_dbg(mdev->sdev->parent, "%s %d rc %d\n", __func__, __LINE__, rc); in mic_x100_load_firmware()
499 static u32 mic_x100_get_postcode(struct mic_device *mdev) in mic_x100_get_postcode() argument
501 return mic_mmio_read(&mdev->mmio, MIC_X100_POSTCODE); in mic_x100_get_postcode()
511 mic_x100_smpt_set(struct mic_device *mdev, dma_addr_t dma_addr, u8 index) in mic_x100_smpt_set() argument
525 dma_addr >> mdev->smpt->info.page_shift); in mic_x100_smpt_set()
526 mic_mmio_write(&mdev->mmio, smpt_reg_val, in mic_x100_smpt_set()
537 static void mic_x100_smpt_hw_init(struct mic_device *mdev) in mic_x100_smpt_hw_init() argument
539 struct mic_smpt_hw_info *info = &mdev->smpt->info; in mic_x100_smpt_hw_init()