View Single Post
  #546 (permalink)  
Old 12-11-2010, 05:01 AM
[ACL]'s Avatar
[ACL]
VIP Member
Offline
Location: NY
 
Join Date: Feb 2010
Posts: 1,534
Reputation: 6350
[ACL] is a trusted member of the community[ACL] is a trusted member of the community[ACL] is a trusted member of the community[ACL] is a trusted member of the community[ACL] is a trusted member of the community[ACL] is a trusted member of the community[ACL] is a trusted member of the community[ACL] is a trusted member of the community[ACL] is a trusted member of the community[ACL] is a trusted member of the community[ACL] is a trusted member of the community
Mentioned: 2 Post(s)
Tagged: 0 Thread(s)
Re: NAND Boot Testing - 11-29: New Framebuffer, gralloc, and libGLES

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.
__________________

Last edited by [ACL]; 12-11-2010 at 05:37 AM.
Reply With Quote
This post has been thanked 4 times.