finally fixed the panel power issue.. its a little buggy since its just goes off randmly right now .. but i'll work it out. I havent committed it yet but will soon..
nate: bzo was able go the the panel init dump from haret. This is his trace
pastebin - rhod400 mddi init trace - post number 2015886
This is what i added to the panel code for now for the init to work
#define REG_WAIT (0xffff)
struct nov_regs {
unsigned reg;
unsigned val;
} nov_init_seq[] = {
{0x5100, 0x00},
{0x1100, 0x01},
{REG_WAIT, 0x64},
{0x4e00, 0x00},
{0x3a00, 0x05},
{REG_WAIT, 0x1},
{0x3500, 0x02},
{0x4400, 0x00},
{0x4401, 0x00},
{0x5e00, 0x00},
{0x6a01, 0x00},
{0x6a02, 0x01},
{0x5301, 0x10},
{0x5500, 0x02},
{0x6a17, 0x01},
{0x6a18, 0xff},
{0x2900, 0x01},
{0x5300, 0x2c},
{0x5303, 0x01},
};
struct nov_regs nov_deinit_seq[] = {
{0x2800, 0x01},
{0x5300, 0x28},
{0x5500, 0x00},
{0x5300, 0x08},
{0x5e03, 0x08},
{0x5300, 0x00},
{0x1000, 0x01},
};
static int htcrhod_mddi_client_init(
struct msm_mddi_bridge_platform_data *bridge_data,
struct msm_mddi_client_data *client_data)
{
int i;
unsigned reg, val;
client_data->auto_hibernate(client_data, 0);
for (i = 0; i < ARRAY_SIZE(nov_init_seq); i++) {
reg = cpu_to_le32(nov_init_seq[i].reg);
val = cpu_to_le32(nov_init_seq[i].val);
if (reg == REG_WAIT)
msleep(val);
else
client_data->remote_write(client_data, val, reg);
}
client_data->auto_hibernate(client_data, 1);
return 0;
}
static int htcrhod_mddi_client_uninit(
struct msm_mddi_bridge_platform_data *bridge_data,
struct msm_mddi_client_data *client_data)
{
int i;
unsigned reg, val;
for (i = 0; i < ARRAY_SIZE(nov_init_seq); i++) {
reg = cpu_to_le32(nov_deinit_seq[i].reg);
val = cpu_to_le32(nov_deinit_seq[i].val);
client_data->remote_write(client_data, val, reg);
}
return 0;
}
Edit : i committed the code and autobuild already has something for you guys to test. with the panel out of the way and frame-buffer all set. I can finally attack the head-set crap and then work with bzo on camera.. almost there.