[myTouch 3G, Magic Android Development] sanpei:
I think that some devs already knew this and they are working on this, but I cannot understand why they didn't tell this to other devs.

download HTC desirec_2.6.29 kernel sources here:

http://developer.htc.com/ , if you couldn't see it, use tor or some other proxy software to visit the site.

extract it. look into arch/arm/configs folder.

you will find a file named "0001-Symptom-HeroC-remove-other-project-board-config-fi.patch"

revert this patch, you will get almost all board files. with some minor changes, you could boot the HTC official 2.6.29 kernel on your devices.

what changes? 32A new radio for example:

1. the "EBI1 supports 256MB" is removed, add it or make your changes, a simple modification, at beginning of board-sapphire.h:

#ifndef __ARCH_ARM_MACH_MSM_BOARD_SAPPHIRE_H

#define __ARCH_ARM_MACH_MSM_BOARD_SAPPHIRE_H

#define CONFIG_MSM_AMSS_SUPPORT_256MB_EBI1 //add this line.

2. the freq table for 32A is not added (this is the main reason why you can't boot), edit it in the acpulock-arm11.c:

static struct freq_tbl_map acpu_freq_tbl_list[] = {

/* you do not need to comment out these devices, though they are useless for 32A

TABLE_CONFIG(LEGEND, 7227),

TABLE_CONFIG(LATTE, 7227),

TABLE_CONFIG(LIBERTY, 7227),

TABLE_CONFIG(BAHAMAS, 72xx),

TABLE_CONFIG(MEMPHIS, 72xx),

TABLE_CONFIG(PARADISE, 72xx),

TABLE_CONFIG(HERO, 72xx),

TABLE_CONFIG(HEROC, 72xx),

TABLE_CONFIG(DESIREC, 72xx),

*/

TABLE_CONFIG(SAPPHIRE, 72xx),	//our device

{ 0, 0, 0}

};

3. touchscreen data for elan hardware is not correct. but our 32A phone don't use it. comment out these things in board-sapphire.c:

/* comment out this

static struct elan_i2c_platform_data elan_i2c_data[] = {

{

.version = 0x104,

.abs_x_min = 0,

.abs_y_min = 0,

.intr_gpio = SAPPHIRE_GPIO_TP_ATT_N,

.power = sapphire_ts_power,

.display_width = 320, //me

.display_height = 480, //me

},

{

.version = 0x103,

.abs_x_min = 0,

.abs_x_max = 512 * 2,

.abs_y_min = 0,

.abs_y_max = 896 * 2,

.intr_gpio = SAPPHIRE_GPIO_TP_ATT_N,

.power = sapphire_ts_power,

.display_width = 320, //me

.display_height = 480, //me

},

{

.version = 0x102,

.abs_x_min = 0,

.abs_x_max = 384,

.abs_y_min = 0,

.abs_y_max = 576,

.intr_gpio = SAPPHIRE_GPIO_TP_ATT_N,

.power = sapphire_ts_power,

.display_width = 320, //me

.display_height = 480, //me

},

{

.version = 0x101,

.abs_x_min = 32 + 1,

.abs_x_max = 352 - 1,

.abs_y_min = 32 + 1,

.abs_y_max = 544 - 1,

.intr_gpio = SAPPHIRE_GPIO_TP_ATT_N,

.power = sapphire_ts_power,

.display_width = 320, // or you could just comment out these fields (in all structs in this array)

.display_height = 480, // in this case, you don't need to comment out all elan things.

}

};

*/

static struct i2c_board_info i2c_devices[] = {

{

I2C_BOARD_INFO(SYNAPTICS_I2C_RMI_NAME, 0x20),

.platform_data = sapphire_ts_data,

.irq = SAPPHIRE_GPIO_TO_INT(SAPPHIRE_GPIO_TP_ATT_N)

},

/*	comment out this, if you disabled the entire elan data array.

{

I2C_BOARD_INFO(ELAN_8232_I2C_NAME, 0x10),

.platform_data = &elan_i2c_data,

.irq = SAPPHIRE_GPIO_TO_INT(SAPPHIRE_GPIO_TP_ATT_N),

},

*/

{

I2C_BOARD_INFO("akm8976", 0x1C),

.platform_data = &compass_platform_data,

.irq = SAPPHIRE_GPIO_TO_INT(SAPPHIRE_GPIO_COMPASS_IRQ),

},

};

maybe there are other modifications to be needed by compiling the kernel, but they could be found easily, just follow the output by your compiler.

I remembered that with only these changes, the kernel could be compiled, the device could be booted, and all things were working fine except the color of the screen is not correct(for this problem, we could get right settings from htc-kernel-2.6.27 for sapp and hero).

I am under Windows now so I can't make a patch which would work directly. but with the original leaked patch, I think that it is not difficult to make things right by yourselves.