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]++; }