|
@@ -36,7 +36,7 @@
|
|
#define IVTV_CMD_SPU_STOP 0x00000001
|
|
#define IVTV_CMD_SPU_STOP 0x00000001
|
|
#define IVTV_CMD_SDRAM_PRECHARGE_INIT 0x0000001A
|
|
#define IVTV_CMD_SDRAM_PRECHARGE_INIT 0x0000001A
|
|
#define IVTV_CMD_SDRAM_REFRESH_INIT 0x80000640
|
|
#define IVTV_CMD_SDRAM_REFRESH_INIT 0x80000640
|
|
-#define IVTV_SDRAM_SLEEPTIME (60 * HZ / 100) /* 600 ms */
|
|
|
|
|
|
+#define IVTV_SDRAM_SLEEPTIME 600
|
|
|
|
|
|
#define IVTV_DECODE_INIT_MPEG_FILENAME "v4l-cx2341x-init.mpg"
|
|
#define IVTV_DECODE_INIT_MPEG_FILENAME "v4l-cx2341x-init.mpg"
|
|
#define IVTV_DECODE_INIT_MPEG_SIZE (152*1024)
|
|
#define IVTV_DECODE_INIT_MPEG_SIZE (152*1024)
|
|
@@ -89,7 +89,7 @@ void ivtv_halt_firmware(struct ivtv *itv)
|
|
if (itv->enc_mbox.mbox)
|
|
if (itv->enc_mbox.mbox)
|
|
ivtv_vapi(itv, CX2341X_ENC_HALT_FW, 0);
|
|
ivtv_vapi(itv, CX2341X_ENC_HALT_FW, 0);
|
|
|
|
|
|
- ivtv_sleep_timeout(HZ / 100, 0);
|
|
|
|
|
|
+ ivtv_msleep_timeout(10, 0);
|
|
itv->enc_mbox.mbox = itv->dec_mbox.mbox = NULL;
|
|
itv->enc_mbox.mbox = itv->dec_mbox.mbox = NULL;
|
|
|
|
|
|
IVTV_DEBUG_INFO("Stopping VDM\n");
|
|
IVTV_DEBUG_INFO("Stopping VDM\n");
|
|
@@ -113,7 +113,7 @@ void ivtv_halt_firmware(struct ivtv *itv)
|
|
IVTV_DEBUG_INFO("Stopping SPU\n");
|
|
IVTV_DEBUG_INFO("Stopping SPU\n");
|
|
write_reg(IVTV_CMD_SPU_STOP, IVTV_REG_SPU);
|
|
write_reg(IVTV_CMD_SPU_STOP, IVTV_REG_SPU);
|
|
|
|
|
|
- ivtv_sleep_timeout(HZ / 100, 0);
|
|
|
|
|
|
+ ivtv_msleep_timeout(10, 0);
|
|
|
|
|
|
IVTV_DEBUG_INFO("init Encoder SDRAM pre-charge\n");
|
|
IVTV_DEBUG_INFO("init Encoder SDRAM pre-charge\n");
|
|
write_reg(IVTV_CMD_SDRAM_PRECHARGE_INIT, IVTV_REG_ENC_SDRAM_PRECHARGE);
|
|
write_reg(IVTV_CMD_SDRAM_PRECHARGE_INIT, IVTV_REG_ENC_SDRAM_PRECHARGE);
|
|
@@ -129,9 +129,8 @@ void ivtv_halt_firmware(struct ivtv *itv)
|
|
write_reg(IVTV_CMD_SDRAM_REFRESH_INIT, IVTV_REG_DEC_SDRAM_REFRESH);
|
|
write_reg(IVTV_CMD_SDRAM_REFRESH_INIT, IVTV_REG_DEC_SDRAM_REFRESH);
|
|
}
|
|
}
|
|
|
|
|
|
- IVTV_DEBUG_INFO("Sleeping for %dms (600 recommended)\n",
|
|
|
|
- (int)(IVTV_SDRAM_SLEEPTIME * 1000 / HZ));
|
|
|
|
- ivtv_sleep_timeout(IVTV_SDRAM_SLEEPTIME, 0);
|
|
|
|
|
|
+ IVTV_DEBUG_INFO("Sleeping for %dms\n", IVTV_SDRAM_SLEEPTIME);
|
|
|
|
+ ivtv_msleep_timeout(IVTV_SDRAM_SLEEPTIME, 0);
|
|
}
|
|
}
|
|
|
|
|
|
void ivtv_firmware_versions(struct ivtv *itv)
|
|
void ivtv_firmware_versions(struct ivtv *itv)
|
|
@@ -204,12 +203,12 @@ int ivtv_firmware_init(struct ivtv *itv)
|
|
|
|
|
|
/* start firmware */
|
|
/* start firmware */
|
|
write_reg(read_reg(IVTV_REG_SPU) & IVTV_MASK_SPU_ENABLE, IVTV_REG_SPU);
|
|
write_reg(read_reg(IVTV_REG_SPU) & IVTV_MASK_SPU_ENABLE, IVTV_REG_SPU);
|
|
- ivtv_sleep_timeout(HZ / 10, 0);
|
|
|
|
|
|
+ ivtv_msleep_timeout(100, 0);
|
|
if (itv->has_cx23415)
|
|
if (itv->has_cx23415)
|
|
write_reg(read_reg(IVTV_REG_VPU) & IVTV_MASK_VPU_ENABLE15, IVTV_REG_VPU);
|
|
write_reg(read_reg(IVTV_REG_VPU) & IVTV_MASK_VPU_ENABLE15, IVTV_REG_VPU);
|
|
else
|
|
else
|
|
write_reg(read_reg(IVTV_REG_VPU) & IVTV_MASK_VPU_ENABLE16, IVTV_REG_VPU);
|
|
write_reg(read_reg(IVTV_REG_VPU) & IVTV_MASK_VPU_ENABLE16, IVTV_REG_VPU);
|
|
- ivtv_sleep_timeout(HZ / 10, 0);
|
|
|
|
|
|
+ ivtv_msleep_timeout(100, 0);
|
|
|
|
|
|
/* find mailboxes and ping firmware */
|
|
/* find mailboxes and ping firmware */
|
|
itv->enc_mbox.mbox = ivtv_search_mailbox(itv->enc_mem, IVTV_ENCODER_SIZE);
|
|
itv->enc_mbox.mbox = ivtv_search_mailbox(itv->enc_mem, IVTV_ENCODER_SIZE);
|
|
@@ -264,7 +263,7 @@ void ivtv_init_mpeg_decoder(struct ivtv *itv)
|
|
IVTV_DECODE_INIT_MPEG_FILENAME);
|
|
IVTV_DECODE_INIT_MPEG_FILENAME);
|
|
} else {
|
|
} else {
|
|
ivtv_vapi(itv, CX2341X_DEC_SCHED_DMA_FROM_HOST, 3, 0, readbytes, 0);
|
|
ivtv_vapi(itv, CX2341X_DEC_SCHED_DMA_FROM_HOST, 3, 0, readbytes, 0);
|
|
- ivtv_sleep_timeout(HZ / 10, 0);
|
|
|
|
|
|
+ ivtv_msleep_timeout(100, 0);
|
|
}
|
|
}
|
|
ivtv_vapi(itv, CX2341X_DEC_STOP_PLAYBACK, 4, 0, 0, 0, 1);
|
|
ivtv_vapi(itv, CX2341X_DEC_STOP_PLAYBACK, 4, 0, 0, 0, 1);
|
|
}
|
|
}
|