All pastes #10406 Raw Edit

Miscellany

public text v1 · immutable
#10406 ·published 2005-04-27 10:48 UTC
rendered paste body
static void
mq_power_on (struct mediaq11xx_base *zis, int subdev_id)
{
        /* The device IDs lower 4 bits contains the subdevice index
         * (counting from 1). Take care to keep all MEDIAQ_11XX_XXX
         * contstants with sequential values in their lower 4 bits!
         */
        unsigned idx = (subdev_id & 0x0f) - 1;
        struct mq_data *mqdata = to_mq_data (zis);

        debug_func ("subdev:%x curstate:%d\n", subdev_id, mqdata->power_on [idx]);

        /* Check if MediaQ is not totally turned off */
        if (!global_power (mqdata)) {
                debug ("-*- Global POWER ON to the MediaQ chip -*-\n");
>>> the above debug message was not printed
                /* First of all, enable the oscillator clock */
                zis->regs->DC.config_1 = mqdata->mq_init->DC [1];
                /* Wait for oscillator to run - 30ms doesnt suffice */
                mdelay (100);
                /* Enable power to CPU Configuration module */
                zis->regs->DC.config_2 |= MQ_CONFIG_CC_MODULE_ENABLE;
                mdelay (10);
                /* Needed for MediaQ 1178/88 on h2200. */
                mqdata->base.regs->DC.config_8 = 0x86098609;
                /* Enable the MQ1132 MIU */
                zis->regs->MIU.miu_0 |= MQ_MIU_ENABLE;
        }

        if (!mqdata->power_on [idx])
>>> isn't mqdata->power_on[idx] == 1 so this is not entered?
                switch (subdev_id) {
                case MEDIAQ_11XX_FB_DEVICE_ID:
                        zis->regs->GC.control |= MQ_GC_CONTROL_ENABLE;
                        /* Enable the graphics engine power */
                        zis->regs->DC.config_5 |= MQ_CONFIG_GE_ENABLE;
                        break;
                case MEDIAQ_11XX_FP_DEVICE_ID:
                        /* Enable flat panel pin outputs */
                        //zis->regs->FP.pin_control_1 &= ~MQ_FP_DISABLE_FLAT_PANEL_PINS;
                        zis->regs->FP.output_control = mqdata->mq_init->FP [2];
                        break;
                case MEDIAQ_11XX_UDC_DEVICE_ID:
                        /* Enable power to USB function */
                        zis->regs->DC.config_5 |= MQ_CONFIG_UDC_CLOCK_ENABLE;
                        break;
                case MEDIAQ_11XX_UHC_DEVICE_ID:
                        /* Enable power to USB host */
                        zis->regs->DC.config_5 |= MQ_CONFIG_UHC_CLOCK_ENABLE;
                        break;
                case MEDIAQ_11XX_SPI_DEVICE_ID:
                case MEDIAQ_11XX_I2S_DEVICE_ID:
                        /* There's no explicit way to do it */
                        break;
                }
        mqdata->power_on [idx]++;
}