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->pdev->dev, "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->pdev->dev, 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()
171 mic_x100_send_rdmasr_intr(mdev, rdmasr_db); in mic_x100_send_intr()
182 static u32 mic_x100_ack_interrupt(struct mic_device *mdev) in mic_x100_ack_interrupt() argument
185 u32 reg = mic_mmio_read(&mdev->mmio, sicr0); in mic_x100_ack_interrupt()
186 mic_mmio_write(&mdev->mmio, reg, sicr0); in mic_x100_ack_interrupt()
197 static void mic_x100_intr_workarounds(struct mic_device *mdev) in mic_x100_intr_workarounds() argument
199 struct mic_mw *mw = &mdev->mmio; in mic_x100_intr_workarounds()
202 if (MIC_A0_STEP == mdev->stepping) in mic_x100_intr_workarounds()
206 if (mdev->stepping >= MIC_B0_STEP) in mic_x100_intr_workarounds()
207 mdev->intr_ops->enable_interrupts(mdev); in mic_x100_intr_workarounds()
215 static void mic_x100_hw_intr_init(struct mic_device *mdev) in mic_x100_hw_intr_init() argument
217 mdev->intr_info = (struct mic_intr_info *)mic_x100_intr_init; in mic_x100_hw_intr_init()
230 mic_x100_read_msi_to_src_map(struct mic_device *mdev, int idx) in mic_x100_read_msi_to_src_map() argument
232 return mic_mmio_read(&mdev->mmio, in mic_x100_read_msi_to_src_map()
248 mic_x100_program_msi_to_src_map(struct mic_device *mdev, in mic_x100_program_msi_to_src_map() argument
252 struct mic_mw *mw = &mdev->mmio; in mic_x100_program_msi_to_src_map()
268 static void mic_x100_reset_fw_ready(struct mic_device *mdev) in mic_x100_reset_fw_ready() argument
270 mdev->ops->write_spad(mdev, MIC_X100_DOWNLOAD_INFO, 0); in mic_x100_reset_fw_ready()
277 static bool mic_x100_is_fw_ready(struct mic_device *mdev) in mic_x100_is_fw_ready() argument
279 u32 scratch2 = mdev->ops->read_spad(mdev, MIC_X100_DOWNLOAD_INFO); in mic_x100_is_fw_ready()
287 static u32 mic_x100_get_apic_id(struct mic_device *mdev) in mic_x100_get_apic_id() argument
291 scratch2 = mdev->ops->read_spad(mdev, MIC_X100_DOWNLOAD_INFO); in mic_x100_get_apic_id()
299 static void mic_x100_send_firmware_intr(struct mic_device *mdev) in mic_x100_send_firmware_intr() argument
304 struct mic_mw *mw = &mdev->mmio; in mic_x100_send_firmware_intr()
312 mic_mmio_write(mw, mic_x100_get_apic_id(mdev), in mic_x100_send_firmware_intr()
325 static void mic_x100_hw_reset(struct mic_device *mdev) in mic_x100_hw_reset() argument
329 struct mic_mw *mw = &mdev->mmio; in mic_x100_hw_reset()
352 mic_x100_load_command_line(struct mic_device *mdev, const struct firmware *fw) in mic_x100_load_command_line() argument
357 void __iomem *cmd_line_va = mdev->aper.va + mdev->bootaddr + fw->size; in mic_x100_load_command_line()
360 boot_mem = mdev->aper.len >> 20; in mic_x100_load_command_line()
367 if (mdev->cosm_dev->cmdline) in mic_x100_load_command_line()
369 mdev->cosm_dev->cmdline); in mic_x100_load_command_line()
382 mic_x100_load_ramdisk(struct mic_device *mdev) in mic_x100_load_ramdisk() argument
386 struct boot_params __iomem *bp = mdev->aper.va + mdev->bootaddr; in mic_x100_load_ramdisk()
388 rc = request_firmware(&fw, mdev->cosm_dev->ramdisk, &mdev->pdev->dev); in mic_x100_load_ramdisk()
390 dev_err(&mdev->pdev->dev, in mic_x100_load_ramdisk()
392 rc, mdev->cosm_dev->ramdisk); in mic_x100_load_ramdisk()
399 memcpy_toio(mdev->aper.va + (mdev->bootaddr << 1), fw->data, fw->size); in mic_x100_load_ramdisk()
400 iowrite32(mdev->bootaddr << 1, &bp->hdr.ramdisk_image); in mic_x100_load_ramdisk()
417 mic_x100_get_boot_addr(struct mic_device *mdev) in mic_x100_get_boot_addr() argument
422 scratch2 = mdev->ops->read_spad(mdev, MIC_X100_DOWNLOAD_INFO); in mic_x100_get_boot_addr()
424 dev_dbg(&mdev->pdev->dev, "%s %d boot_addr 0x%x\n", in mic_x100_get_boot_addr()
427 dev_err(&mdev->pdev->dev, in mic_x100_get_boot_addr()
433 mdev->bootaddr = boot_addr; in mic_x100_get_boot_addr()
446 mic_x100_load_firmware(struct mic_device *mdev, const char *buf) in mic_x100_load_firmware() argument
451 rc = mic_x100_get_boot_addr(mdev); in mic_x100_load_firmware()
455 rc = request_firmware(&fw, mdev->cosm_dev->firmware, &mdev->pdev->dev); in mic_x100_load_firmware()
457 dev_err(&mdev->pdev->dev, in mic_x100_load_firmware()
459 rc, mdev->cosm_dev->firmware); in mic_x100_load_firmware()
462 if (mdev->bootaddr > mdev->aper.len - fw->size) { in mic_x100_load_firmware()
464 dev_err(&mdev->pdev->dev, "%s %d rc %d bootaddr 0x%x\n", in mic_x100_load_firmware()
465 __func__, __LINE__, rc, mdev->bootaddr); in mic_x100_load_firmware()
469 memcpy_toio(mdev->aper.va + mdev->bootaddr, fw->data, fw->size); in mic_x100_load_firmware()
470 mdev->ops->write_spad(mdev, MIC_X100_FW_SIZE, fw->size); in mic_x100_load_firmware()
471 if (!strcmp(mdev->cosm_dev->bootmode, "flash")) in mic_x100_load_firmware()
474 rc = mic_x100_load_command_line(mdev, fw); in mic_x100_load_firmware()
476 dev_err(&mdev->pdev->dev, "%s %d rc %d\n", in mic_x100_load_firmware()
482 if (mdev->cosm_dev->ramdisk) in mic_x100_load_firmware()
483 rc = mic_x100_load_ramdisk(mdev); in mic_x100_load_firmware()
485 dev_dbg(&mdev->pdev->dev, "%s %d rc %d\n", __func__, __LINE__, rc); in mic_x100_load_firmware()
496 static u32 mic_x100_get_postcode(struct mic_device *mdev) in mic_x100_get_postcode() argument
498 return mic_mmio_read(&mdev->mmio, MIC_X100_POSTCODE); in mic_x100_get_postcode()
508 mic_x100_smpt_set(struct mic_device *mdev, dma_addr_t dma_addr, u8 index) in mic_x100_smpt_set() argument
522 dma_addr >> mdev->smpt->info.page_shift); in mic_x100_smpt_set()
523 mic_mmio_write(&mdev->mmio, smpt_reg_val, in mic_x100_smpt_set()
534 static void mic_x100_smpt_hw_init(struct mic_device *mdev) in mic_x100_smpt_hw_init() argument
536 struct mic_smpt_hw_info *info = &mdev->smpt->info; in mic_x100_smpt_hw_init()