Merge "[msm7627]: Change ACPU clock value"
diff --git a/platform/msm_shared/hsusb.c b/platform/msm_shared/hsusb.c
index 197b102..9c7e02d 100644
--- a/platform/msm_shared/hsusb.c
+++ b/platform/msm_shared/hsusb.c
@@ -520,25 +520,16 @@
}
#define USB_HS1_XVCR_FS_CLK_MD 0x00902908
#define USB_HS1_XVCR_FS_CLK_NS 0x0090290C
+
void hsusb_8x60_clock_init(void)
{
- unsigned int val = 0;
-
- //Enable PLL8
- writel(0xF, 0x00903144);
- writel(0x5, 0x00903148);
- writel(0x8, 0x0090314C);
-
- val = readl(0x00903154);
- val &= ~(0xC30000);
- val |= 0xC10000;
- writel(val, 0x00903154);
-
- val = readl(0x00903140);
- val &= ~(0x7);
- val |= 0x7;
- writel(val, 0x00903140);
-
+ int val;
+ /* Vote for PLL8 */
+ val = readl(0x009034C0);
+ val |= (1<<8);
+ writel(val, 0x009034C0);
+ /* Wait until PLL is enabled. */
+ while (!(readl(0x00903158) & (1<<16)));
//Set 7th bit in NS Register
val = 1 << 7;
@@ -844,11 +835,18 @@
int udc_stop(void)
{
- writel(0, USB_USBINTR);
+ int val;
+ writel(0, USB_USBINTR);
mask_interrupt(INT_USB_HS);
/* disable pullup */
writel(0x00080000, USB_USBCMD);
+#ifdef PLATFORM_MSM8X60
+ /* Voting down PLL8 */
+ val = readl(0x009034C0);
+ val &= ~(1<<8);
+ writel(val, 0x009034C0);
+#endif
thread_sleep(10);
return 0;
diff --git a/target/qsd8250_ffa/init.c b/target/qsd8250_ffa/init.c
index 7018c6b..6a99bf9 100644
--- a/target/qsd8250_ffa/init.c
+++ b/target/qsd8250_ffa/init.c
@@ -56,32 +56,32 @@
static struct ptentry board_part_list[] = {
{
.start = 0,
- .length = 40 /* 5MB */,
+ .length = 5 /* In MB */,
.name = "boot",
},
{
- .start = 40,
- .length = 760 /* 95MB */,
+ .start = DIFF_START_ADDR,
+ .length = 95 /* In MB */,
.name = "system",
},
{
- .start = 800,
- .length = 240 /* 30MB */,
+ .start = DIFF_START_ADDR,
+ .length = 30 /* In MB */,
.name = "cache",
},
{
- .start = 1040,
- .length = 3 /* 384KB */,
+ .start = DIFF_START_ADDR,
+ .length = 1 /* In MB */,
.name = "misc",
},
{
- .start = 1043,
+ .start = DIFF_START_ADDR,
.length = VARIABLE_LENGTH,
.name = "userdata",
},
{
.start = DIFF_START_ADDR,
- .length = 40 /* 5MB */,
+ .length = 5 /* In MB */,
.name = "recovery",
},
};
@@ -99,8 +99,8 @@
unsigned offset;
struct flash_info *flash_info;
unsigned total_num_of_blocks;
- bool start_addr_changed = false;
unsigned next_ptr_start_adr = 0;
+ unsigned blocks_per_1MB = 8; /* Default value of 2k page size on 256MB flash drive*/
int i;
dprintf(INFO, "target_init()\n");
@@ -109,7 +109,6 @@
keys_init();
keypad_init();
#endif
-
ptable_init(&flash_ptable);
smem_ptable_init();
@@ -122,32 +121,32 @@
while(1);
total_num_of_blocks = flash_info->num_blocks;
+ blocks_per_1MB = (1 << 20) / (flash_info->block_size);
for (i = 0; i < num_parts; i++) {
struct ptentry *ptn = &board_part_list[i];
- unsigned len = ptn->length;
+ unsigned len = ((ptn->length) * blocks_per_1MB);
- if(len == VARIABLE_LENGTH)
+ if(ptn->start != 0)
+ ASSERT(ptn->start == DIFF_START_ADDR);
+
+ ptn->start = next_ptr_start_adr;
+
+ if(ptn->length == VARIABLE_LENGTH)
{
- start_addr_changed = true;
unsigned length_for_prt = 0;
unsigned j;
for (j = i+1; j < num_parts; j++)
{
struct ptentry *temp_ptn = &board_part_list[j];
ASSERT(temp_ptn->length != VARIABLE_LENGTH);
- length_for_prt += temp_ptn->length;
+ length_for_prt += ((temp_ptn->length) * blocks_per_1MB);
}
- len = (total_num_of_blocks - 1) - (offset + ptn->start + length_for_prt);
+ len = (total_num_of_blocks - 1) - (offset + ptn->start + length_for_prt);
ASSERT(len >= 0);
- next_ptr_start_adr = ptn->start + len;
}
- if((ptn->start == DIFF_START_ADDR) && (start_addr_changed))
- {
- ASSERT(next_ptr_start_adr);
- ptn->start = next_ptr_start_adr;
- next_ptr_start_adr = ptn->start + ptn->length;
- }
+
+ next_ptr_start_adr = ptn->start + len;
ptable_add(&flash_ptable, ptn->name, offset + ptn->start,
len, ptn->flags, TYPE_APPS_PARTITION, PERM_WRITEABLE);
}
diff --git a/target/qsd8250_surf/init.c b/target/qsd8250_surf/init.c
index 794cc6c..9aebf05 100644
--- a/target/qsd8250_surf/init.c
+++ b/target/qsd8250_surf/init.c
@@ -56,32 +56,32 @@
static struct ptentry board_part_list[] = {
{
.start = 0,
- .length = 40 /* 5MB */,
+ .length = 5 /* In MB */,
.name = "boot",
},
{
- .start = 40,
- .length = 760 /* 95MB */,
+ .start = DIFF_START_ADDR,
+ .length = 95 /* In MB */,
.name = "system",
},
{
- .start = 800,
- .length = 240 /* 30MB */,
+ .start = DIFF_START_ADDR,
+ .length = 30 /* In MB */,
.name = "cache",
},
{
- .start = 1040,
- .length = 3 /* 384KB */,
+ .start = DIFF_START_ADDR,
+ .length = 1 /* In MB */,
.name = "misc",
},
{
- .start = 1043,
+ .start = DIFF_START_ADDR,
.length = VARIABLE_LENGTH,
.name = "userdata",
},
{
.start = DIFF_START_ADDR,
- .length = 40 /* 5MB */,
+ .length = 5 /* In MB */,
.name = "recovery",
},
};
@@ -99,8 +99,8 @@
unsigned offset;
struct flash_info *flash_info;
unsigned total_num_of_blocks;
- bool start_addr_changed = false;
unsigned next_ptr_start_adr = 0;
+ unsigned blocks_per_1MB = 8; /* Default value of 2k page size on 256MB flash drive*/
int i;
dprintf(INFO, "target_init()\n");
@@ -121,32 +121,32 @@
while(1);
total_num_of_blocks = flash_info->num_blocks;
+ blocks_per_1MB = (1 << 20) / (flash_info->block_size);
for (i = 0; i < num_parts; i++) {
struct ptentry *ptn = &board_part_list[i];
- unsigned len = ptn->length;
+ unsigned len = ((ptn->length) * blocks_per_1MB);
- if(len == VARIABLE_LENGTH)
+ if(ptn->start != 0)
+ ASSERT(ptn->start == DIFF_START_ADDR);
+
+ ptn->start = next_ptr_start_adr;
+
+ if(ptn->length == VARIABLE_LENGTH)
{
- start_addr_changed = true;
unsigned length_for_prt = 0;
unsigned j;
for (j = i+1; j < num_parts; j++)
{
struct ptentry *temp_ptn = &board_part_list[j];
ASSERT(temp_ptn->length != VARIABLE_LENGTH);
- length_for_prt += temp_ptn->length;
+ length_for_prt += ((temp_ptn->length) * blocks_per_1MB);
}
- len = (total_num_of_blocks - 1) - (offset + ptn->start + length_for_prt);
+ len = (total_num_of_blocks - 1) - (offset + ptn->start + length_for_prt);
ASSERT(len >= 0);
- next_ptr_start_adr = ptn->start + len;
}
- if((ptn->start == DIFF_START_ADDR) && (start_addr_changed))
- {
- ASSERT(next_ptr_start_adr);
- ptn->start = next_ptr_start_adr;
- next_ptr_start_adr = ptn->start + ptn->length;
- }
+
+ next_ptr_start_adr = ptn->start + len;
ptable_add(&flash_ptable, ptn->name, offset + ptn->start,
len, ptn->flags, TYPE_APPS_PARTITION, PERM_WRITEABLE);
}