Subversion Repositories freemyipod

Rev

Rev 251 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 251 Rev 265
Line 221... Line 221...
221
            | (direction << DMACON_DIRECTION_SHIFT)
221
            | (direction << DMACON_DIRECTION_SHIFT)
222
            | (2 << DMACON_DATA_SIZE_SHIFT)
222
            | (2 << DMACON_DATA_SIZE_SHIFT)
223
            | (3 << DMACON_BURST_LEN_SHIFT);
223
            | (3 << DMACON_BURST_LEN_SHIFT);
224
    while ((DMAALLST & DMAALLST_CHAN3_MASK))
224
    while ((DMAALLST & DMAALLST_CHAN3_MASK))
225
        DMACOM3 = DMACOM_CLEARBOTHDONE;
225
        DMACOM3 = DMACOM_CLEARBOTHDONE;
226
    DMABASE3 = (uint32_t)buffer;
226
    DMABASE3 = buffer;
227
    DMATCNT3 = (size >> 4) - 1;
227
    DMATCNT3 = (size >> 4) - 1;
228
    clean_dcache();
228
    clean_dcache();
229
    DMACOM3 = 4;
229
    DMACOM3 = 4;
230
}
230
}
231
 
231
 
Line 254... Line 254...
254
{
254
{
255
    mutex_lock(&ecc_mtx, TIMEOUT_BLOCK);
255
    mutex_lock(&ecc_mtx, TIMEOUT_BLOCK);
256
    ECC_INT_CLR = 1;
256
    ECC_INT_CLR = 1;
257
    SRCPND = (1 << IRQ_ECC);
257
    SRCPND = (1 << IRQ_ECC);
258
    ECC_UNK1 = size;
258
    ECC_UNK1 = size;
259
    ECC_DATA_PTR = (uint32_t)databuffer;
259
    ECC_DATA_PTR = databuffer;
260
    ECC_SPARE_PTR = (uint32_t)sparebuffer;
260
    ECC_SPARE_PTR = sparebuffer;
261
    clean_dcache();
261
    clean_dcache();
262
    ECC_CTRL = type;
262
    ECC_CTRL = type;
263
}
263
}
264
 
264
 
265
static uint32_t ecc_collect(void)
265
static uint32_t ecc_collect(void)