**New fun from Samsung**
I'll be editing my posts as scripts finish but I want to get a few things up now.
In an attempt to see how difficult it will be to port custom ROMs between the different Galaxy devises, I've started looking for unique files and diffs in the sources Samgung has released.
As far as unique files, the Vibrant is the only one
*The Vibrant Epic and I9000 sources still have these files*
http://www.simtec.co.uk/products/EB2410ITX/
T959 Only /linux-2.6.29/include/asm-arm/plat-s3c24xx/regs-iis.h
T959 Only /linux-2.6.29/include/asm-arm/plat-s3c24xx/regs-s3c2412-iis.h
*The I897 source now includes the A1026 and WM8994 files. They no longer need to be copied over. Yay?*
http://www.audience.com/about/1026.php
T959 Only /linux-2.6.29/sound/soc/codecs/A1026_dev.h
T959 Only /linux-2.6.29/sound/soc/codecs/A1026_i2c_drv.c
T959 Only /linux-2.6.29/sound/soc/codecs/A1026_i2c_drv.h
T959 Only /linux-2.6.29/sound/soc/codecs/A1026_regs.h
T959 Only /linux-2.6.29/sound/soc/codecs/audience.c
T959 Only /linux-2.6.29/sound/soc/codecs/audience.h
http://www.wolfsonmicro.com/products/audio_hubs/WM8994/
T959 Only /linux-2.6.29/sound/soc/codecs/ttymisc.c
T959 Only /linux-2.6.29/sound/soc/codecs/ttymisc.h
T959 Only /linux-2.6.29/sound/soc/codecs/wm8994_def_sw.h
T959 Only /linux-2.6.29/sound/soc/codecs/wm8994_kepler.c
T959 Only /linux-2.6.29/sound/soc/codecs/wm8994_kepler_sw.c
T959 Only /linux-2.6.29/sound/soc/codecs/wm8994_sw.c
which the Captivate should have as well (at least the codecs files, I think the test s3c24 files are just left over junk)
The Vibrant Kernel.tar looks like it now includes the files from 3d_module_GPL.tar.gz but the SGH-T959_OpenSource.tar stll includes it so I will have to look into this.
New Captivate Source only
NEW I897 ./linux-2.6.29/arch/arm/configs/kepler_rev02_defconfig
NEW I897 ./linux-2.6.29/drivers/input/keyboard/MMH_ST959_R01_V07_bin.c
NEW I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V14_bin.c
NEW I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V12_bin.c
NEW I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V08_bin.c
NEW I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V10_bin.c
NEW I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V15_bin.c
NEW I897 ./linux-2.6.29/include/config/aries/ver/b2.h
NEW I897 ./linux-2.6.29/include/config/kepler/audio
NEW I897 ./linux-2.6.29/include/config/kepler/audio/a1026.h
NEW I897 ./linux-2.6.29/include/config/kepler/ver/b2.h
NEW I897 ./linux-2.6.29/include/config/audio
NEW I897 ./linux-2.6.29/include/config/audio/hw
NEW I897 ./linux-2.6.29/include/config/audio/hw/rev02.h
NEW I897 ./linux-2.6.29/include/config/keypad/melfas
NEW I897 ./linux-2.6.29/include/config/keypad/melfas/touch.h
New Vibrant Source only
NEW T959 ./linux-2.6.29/arch/arm/configs/T959_rev05_defconfig
NEW T959 ./linux-2.6.29/include/config/onenand.h
NEW T959 ./linux-2.6.29/include/config/jupiter/ver/b5.h
NEW T959 ./linux-2.6.29/include/config/t959
NEW T959 ./linux-2.6.29/include/config/t959/ver
NEW T959 ./linux-2.6.29/include/config/t959/ver/b5.h
NEW T959 ./linux-2.6.29/include/config/s5pc110/kepler
NEW T959 ./linux-2.6.29/include/config/s5pc110/kepler/board.h
NEW T959 ./linux-2.6.29/include/config/s5pc110/t959
NEW T959 ./linux-2.6.29/include/config/s5pc110/t959/board.h
The only files common to both that have differences in them are
*this is still true the VIbrant received the update to the FSR files we did*
kernel/linux-2.6.29/.config
kernel/linux-2.6.29/sound/soc/codecs/wm8994_aries.c
kernel/modules/Makefile
kernel/linux-2.6.29/sound/soc/codecs/wm8994_aries.c
148c148
I897 #define TUNING_RECOGNITION_MAIN_AIF1ADCL_VOL 0xCB // 400h
---
T959 #define TUNING_RECOGNITION_MAIN_AIF1ADCL_VOL 0xD0 // 400h
I'm sure the volume change is critical to the well being of our phones
What makes the Captivate a Captivate and the Vibrant a Vibrant?
Captivate (and I9000) CONFIG_ARIES_VER_B3
Vibrant CONFIG_JUPITER_VER_B5
along with a bunch of networking, crypto... ok there are a lot of differences between the Captivate and Vibrant. Much more than between the I897 and the Galaxy S
Brain...hurts.....
The Captivate is now a CONFIG_ARIES_VER_B2 CONFIG_S5PC110_KEPLER_BOARD and CONFIG_KEPLER_VER_B2
and the VIbrant is now CONFIG_ARIES_VER_B3 CONFIG_S5PC110_T959_BOARD and CONFIG_T959_VER_B5
The I9000 is still a CONFIG_ARIES_VER_B3 right now because as of Sep 6th 2010 the source has not changed from, oh a few days ago when I posted this the first time.
The other parts of the .config files are now very close to each other. The VIbrant now has all the extra crypto and networking flags the Captivate had.
See post 11 for everything you ever wanted to know about the Captivate vs Vibrant .config
*I'm not sure how the qt602240 stuff works, I'll re add some stuff once I've had a chance to look at some of the changes between the old files and the new ones*
qt602240.c controls the touch screen and contains fun things
Taken from qt602240_ts.h
/* Orient */
#define QT602240_NORMAL 0x0
#define QT602240_DIAGONAL 0x1
#define QT602240_HORIZONTAL_FLIP 0x2
#define QT602240_ROTATED_90_COUNTER 0x3
#define QT602240_VERTICAL_FLIP 0x4
#define QT602240_ROTATED_90 0x5
#define QT602240_ROTATED_180 0x6
#define QT602240_DIAGONAL_COUNTER 0x7
unhelpful sets the orientation to 9(!) in his kernel which I think is what it is in the default android source.
*Old ramble about orientation deleted, I may re add it or something similar when I have more information*
OK wall 'o text over. Once I finish with the I9000 I'll add that stuff too.
Sherpa
I really appreciate you looking into this and hope you get a handle on it so that we could be able to indifferently use any firmware/kernel with just a few modifications, enable HSUPA and use different 3G bands without losing GPS functionality or auto-rotate.
Cheers.
This would be helpful for Eugene since he's having some issues with GPS on his rom.
I wonder, can you use this method to look inside the modem.bin for both? See what is different.
Or did I miss it in your wall of text?
madjsp said:
This would be helpful for Eugene since he's having some issues with GPS on his rom.
I wonder, can you use this method to look inside the modem.bin for both? See what is different.
Or did I miss it in your wall of text?
Click to expand...
Click to collapse
modem.bin isn't in there, it's not part of the source
But there *is* something in the kernel compilation that "checks" your modem.bin to see if it's an ATT one, if it fails that test you still get HSUPA but you lose audio on your voice calls (You just hear hissing). There's GOT to be something in there, I've been completely unsuccessful so far figuring out what though =/
I was hoping for someone to this, thanks alot mate.
I897 vs I9000
OK here are the unique files between the Captivate and the Galaxy
*fixed for Sep 6th source drop*
I897 ./linux-2.6.29/arch/arm/configs/kepler_rev02_defconfig
I897 ./linux-2.6.29/drivers/input/keyboard/MMH_ST959_R01_V07_bin.c
I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V08_bin.c
I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V10_bin.c
I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V12_bin.c
I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V14_bin.c
I897 ./linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V15_bin.c
I897 ./linux-2.6.29/include/config/audio
I897 ./linux-2.6.29/include/config/kepler
I897 ./linux-2.6.29/include/config/aries/ver/b2.h
I897 ./linux-2.6.29/include/config/keypad/melfas
I897 ./linux-2.6.29/include/media/isx005_platform.h
I897 ./linux-2.6.29/sound/soc/codecs/A1026_dev.h
I897 ./linux-2.6.29/sound/soc/codecs/A1026_i2c_drv.c
I897 ./linux-2.6.29/sound/soc/codecs/A1026_i2c_drv.h
I897 ./linux-2.6.29/sound/soc/codecs/A1026_regs.h
I897 ./linux-2.6.29/sound/soc/codecs/audience.c
I897 ./linux-2.6.29/sound/soc/codecs/audience.h
I897 ./linux-2.6.29/sound/soc/codecs/HAC.c
I897 ./linux-2.6.29/sound/soc/codecs/HAC.h
I897 ./linux-2.6.29/sound/soc/codecs/ttymisc.c
I897 ./linux-2.6.29/sound/soc/codecs/ttymisc.h
I897 ./linux-2.6.29/sound/soc/codecs/wm8994_def_behold3.h
I897 ./linux-2.6.29/sound/soc/codecs/wm8994_def_kepler.h
I897 ./linux-2.6.29/sound/soc/codecs/wm8994_def_sw.h
I897 ./linux-2.6.29/sound/soc/codecs/wm8994_kepler_sw.c
I897 ./linux-2.6.29/sound/soc/codecs/wm8994_kepler.c
I897 ./linux-2.6.29/sound/soc/codecs/wm8994_sw.c
I9000 ./linux-2.6.29/include/asm-arm/plat-s3c24xx/regs-s3c2412-iis.h
I9000 ./linux-2.6.29/include/asm-arm/plat-s3c24xx/regs-iis.h
The I9000 s3c24xx files are the same as the Vibrant and I'm still not sure what they are doing there. They are #include all over the place in arch/arm and sound/soc
There are a lot of files that are different between the USGSM phones (there are multiple comments using that as a reference) which is weird because there are fewer differences between the I900 .config and the I897 than the Vibrant.
These look like they just add new #ifdefs so I think they should work with the I9000 source
linux-2.6.29/arch/arm/Kconfig
linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio-jupiter.h
linux-2.6.29/arch/arm/mach-s5pc110/include/mach/sec_jack.h
linux-2.6.29/arch/arm/mach-s5pc110/include/mach/sec_jack.h
linux-2.6.29/arch/arm/mach-s5pc110/Kconfig
linux-2.6.29/arch/arm/plat-s5pc11x/pm.c
linux-2.6.29/drivers/input/touchscreen/Kconfig
linux-2.6.29/drivers/media/video/Kconfig
linux-2.6.29/drivers/media/video/Makefile
linux-2.6.29/drivers/media/video/samsung/tv20_ap/s5p_tv_base.c
linux-2.6.29/drivers/mmc/core/core.c
linux-2.6.29/drivers/mmc/core/host.c
linux-2.6.29/drivers/mmc/host/sdhci.h
linux-2.6.29/drivers/mmc/host/sdhci-s3c.c
linux-2.6.29/drivers/sensor/compass/yamaha.c
linux-2.6.29/include/linux/mmc/host.h
linux-2.6.29/kernel/power/earlysuspend.c
linux-2.6.29/sound/soc/codecs/Makefile
linux-2.6.29/sound/soc/codecs/wm8994.h
modules/bcm4329/src/dhd/sys/dhd.h
modules/bcm4329/src/dhd/sys/dhd_linux.c
modules/bcm4329/src/dhd/sys/dhd_sdio.c
these files are different enough that I'm not sure they can be swapped with out some work
linux-2.6.29/arch/arm/mach-s5pc110/mach-common.c
linux-2.6.29/arch/arm/mach-s5pc110/mach-jupiter.c
linux-2.6.29/arch/arm/mach-s5pc110/sec_jack.c
linux-2.6.29/.config
linux-2.6.29/drivers/input/keyboard/cypress/cypress-touchkey.c
linux-2.6.29/drivers/input/keyboard/melfas-touchkey.c
linux-2.6.29/drivers/input/keyboard/s3c-keypad.c
linux-2.6.29/drivers/input/keyboard/s3c-keypad.h
linux-2.6.29/drivers/input/touchscreen/qt602240.c
linux-2.6.29/drivers/media/video/ce147.c
linux-2.6.29/drivers/media/video/samsung/mfc50/mfc_opr.c
linux-2.6.29/drivers/power/s5pc110_battery.c
linux-2.6.29/drivers/regulator/max8998.c
linux-2.6.29/drivers/rtc/alarm.c
linux-2.6.29/drivers/sensor/optical/gp2a.c
linux-2.6.29/drivers/staging/android/lowmemorykiller.c
linux-2.6.29/drivers/video/samsung/s3cfb_tl2796.c
linux-2.6.29/sound/soc/codecs/wm8994_aries.c
linux-2.6.29/sound/soc/codecs/wm8994.c
modules/bcm4329/src/include/epivers.h
modules/bcm4329/src/wl/sys/wl_iw.c
modules/dpram/dpram.c
modules/dpram/fsr/FSR_BML.h
modules/dpram/fsr/FSR_DBG.h
modules/dpram/fsr/FSR.h
modules/dpram/fsr/FSR_LLD_4K_OneNAND.h
modules/dpram/fsr/FSR_LLD_FlexOND.h
modules/dpram/fsr/FSR_LLD.h
modules/dpram/fsr/FSR_LLD_OneNAND.h
modules/dpram/fsr/FSR_OAM.h
modules/dpram/fsr/FSR_PAM.h
modules/dpram/fsr/FSR_PartitionID.h
modules/dpram/fsr/FSR_STL.h
it looks like we have an older version of FSR for some reason? All the headers in modules/dpram/fsr list
I897 Flex Sector Remapper : RFS_1.3.1_b060-LinuStoreIII_1.1.0_b022-FSR_1.1.1_b112_RC
I9000 Flex Sector Remapper : LinuStoreIII_1.2.0_b032-FSR_1.2.1p1_b129_RTM
modules/dpram/fsr/FSR_LLD_PureNAND.h is 1.2 in both. *shrug*
*We now have the same version as the I9000*
linux-2.6.29/drivers/sensor/optical/gp2a.c has only one change
I897 wake_lock_timeout(&prx_wake_lock, 5*HZ);
---
I9000 wake_lock_timeout(&prx_wake_lock, 3*HZ);
linux-2.6.29/drivers/media/video/ce147.c doesn't have a #ifdefined for the I9000 but there is a section to check if its a I897 or a T959
#if defined(CONFIG_S5PC110_KEPLER_BOARD)
unsigned char ce147_str_model[9] = "SGH-I897";
#endif
#if defined (CONFIG_S5PC110_T959_BOARD)
unsigned char ce147_str_model[9] = "SGH-T959";
#endif
---
#ifdefined for unsigned char ce147_str_model[9] = "GT-I9000";
Looks like the Captivate is not only a CONFIG_ARIES_VER_B3 but also CONFIG_S5PC110_KEPLER_BOARD and a Vibrant is CONFIG_JUPITER_VER_B5 and CONFIG_S5PC110_T959_BOARD which is interesting.
CONFIG_S5PC110_FLEMING_BOARD is also floating around in there but I'm not sure which phone it refers to.
The obvious next question is what did Samsung change vs the stock kernel I think I have a 2.1 around here somewhere.
For laughs I did a diff vs cm6 and there are 9138 files that are different and 3946 that are unique to the I897 source. Considering cm6 has 36260 files total (in the version I have) that shouldn't be too hard for those guys right? Right?
Ah well I'll be back once I have the 2.1 stuff.
Sherpa
Doh
I should have mentioned that quite a few of the differences between the USGSM source and the Galaxy have to do with the A1026 codecs
God lord hahaha the CM differences. This does give me a bit of a starting point for pruning through some of the files in search of the HSUPA fail though. Still... that's a lot of crap to go through!
I build my kernels from the T959 source. If compatibility with a different modem.bin differs it is either due to one of the board config options or something in the initramfs - remember that initramfs contains files that set properties and control startup.
Sent from my SAMSUNG-SGH-I897 using XDA App
Lol you guy seem close to all the info needed to build the ultimate rom for these phones maybe just a matter of weeks, just in time for froyo to get you guys started on something else.
Sent from my SAMSUNG-SGH-I897 using Tapatalk
Samsung just released new versions of the I897, T959 the source for the D700(Epic) and I'm checking the I9000 now. Ignore the previous information until I have a few passes at the new stuff.
I really need to reorganize my posts.
Sherpa
Just so this isn't a totally useless post, here are the differences between the new Captivate old Captivate .config
NEW I897 CONFIG_KEPLER_AUDIO_A1026=y
NEW I897 CONFIG_BLK_DEV_INITRD=y
NEW I897 CONFIG_INITRAMFS_SOURCE=""
NEW I897 CONFIG_ARIES_VER_B2=y
OLD I897 CONFIG_ARIES_VER_B3=y
NEW I897 CONFIG_KEPLER_VER_B2=y
OLD I897 CONFIG_KEPLER_VER_B0=y
NEW I897 CONFIG_KEYPAD_MELFAS_TOUCH=y
OLD I897 CONFIG_KEYPAD_CYPRESS_TOUCH=y
OLD I897 CONFIG_VIDEO_S5KA3DFX=y
NEW I897 CONFIG_AUDIO_HW_Rev02=y
The changes between the old version and the Sep 6th Version
Files ./I897/kernel/build_kernel.sh and ./OldI897/kernel/build_kernel.sh differ
Only in ./I897/kernel/linux-2.6.29/.config
Only in ./I897/kernel/linux-2.6.29/arch/arm/configs/kepler_rev02_defconfig
Only in ./I897/kernel/linux-2.6.29/drivers/input/keyboard/MMH_ST959_R01_V07_bin.c
Only in ./I897/kernel/linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V08_bin.c
Only in ./I897/kernel/linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V10_bin.c
Only in ./I897/kernel/linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V12_bin.c
Only in ./I897/kernel/linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V14_bin.c
Only in ./I897/kernel/linux-2.6.29/drivers/input/keyboard/VTW0014_R00_V15_bin.c
Only in ./I897/kernel/linux-2.6.29/include/linux/utsrelease.h
Only in ./I897/kernel/linux-2.6.29/include/linux/version.h
Only in ./I897/kernel/linux-2.6.29/scripts/basic/docproc
Only in ./I897/kernel/linux-2.6.29/scripts/basic/fixdep
Only in ./I897/kernel/linux-2.6.29/scripts/basic/hash
Only in ./I897/kernel/linux-2.6.29/scripts/conmakehash
Only in ./I897/kernel/linux-2.6.29/scripts/ihex2fw
Only in ./I897/kernel/linux-2.6.29/scripts/kallsyms
Only in ./I897/kernel/linux-2.6.29/scripts/kconfig/conf
Only in ./I897/kernel/linux-2.6.29/scripts/kconfig/lex.zconf.c
Only in ./I897/kernel/linux-2.6.29/scripts/kconfig/zconf.hash.c
Only in ./I897/kernel/linux-2.6.29/scripts/kconfig/zconf.tab.c
Only in ./I897/kernel/linux-2.6.29/scripts/mod/elfconfig.h
Only in ./I897/kernel/linux-2.6.29/scripts/mod/mk_elfconfig
Only in ./I897/kernel/linux-2.6.29/scripts/mod/modpost
Captivate vs Vibrant .config 9/6/10
There is just too much information to put all this stuff in one post so rather than try and mash it into the first one I'll start breaking things down by topic.
.config diff
I897 CONFIG_KEPLER_AUDIO_A1026=y
I897 CONFIG_ARIES_VER_B2=y
T959 CONFIG_ARIES_VER_B3=y
I897 CONFIG_S5PC110_KEPLER_BOARD=y
T959 CONFIG_S5PC110_T959_BOARD=y
I897 CONFIG_KEPLER_VER_B2=y
T959 CONFIG_T959_VER_B5=y
I897 CONFIG_KEYPAD_MELFAS_TOUCH=y
T959 CONFIG_KEYPAD_CYPRESS_TOUCH=y
I897 CONFIG_AUDIO_HW_Rev02=y
Thats all thats left, everything else is the same now.
*CONFIG_T959_VER_B5 is in the .config file but NOT any of the defconfigs. make a copy before running make clean/mrproper with the Vibrant source*
And the meat to the previous potatoes, all the files that reference the CONFIG
CONFIG_ARIES_VER_B2 (I879)
linux-2.6.29/arch/arm/configs/aries_rev02_defconfig
CONFIG_ARIES_VER_B2 (I879) & T959 CONFIG_ARIES_VER_B3 (T959)
linux-2.6.29/sound/soc/codecs/wm8994_aries.c
linux-2.6.29/sound/soc/codecs/wm8994_kepler.c
linux-2.6.29/sound/soc/codecs/wm8994_universal.c
linux-2.6.29/sound/soc/codecs/wm8994_kepler_sw.c
linux-2.6.29/arch/arm/mach-s5pc110/mach-jupiter.c
linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio-jupiter.h
linux-2.6.29/arch/arm/configs/kepler_rev02_defconfig
linux-2.6.29/arch/arm/configs/aries_rev03_defconfig
linux-2.6.29/drivers/sensor/optical/gp2a.c
linux-2.6.29/drivers/media/video/s5ka3dfx.c
linux-2.6.29/drivers/input/keyboard/s3c-keypad.h
linux-2.6.29/drivers/input/keyboard/s3c-keypad.h
linux-2.6.29/drivers/input/touchscreen/qt602240.c
CONFIG_KEPLER_AUDIO_A1026 (I897)
linux-2.6.29/sound/soc/codecs/wm8994.c
linux-2.6.29/sound/soc/codecs/wm8994.h
linux-2.6.29/arch/arm/mach-s5pc110/mach-jupiter.c
linux-2.6.29/arch/arm/configs/kepler_rev02_defconfig
linux-2.6.29/arch/arm/plat-s5pc11x/pm.c
CONFIG_KEPLER_AUDIO_A1026 (I897) & CONFIG_AUDIO_HW_Rev02 (I897)
linux-2.6.29/arch/arm/configs/kepler_rev02_defconfig
*There are no files that have #ifdefs for AUDIO_HW_Rev02*
I897 CONFIG_S5PC110_KEPLER_BOARD (I897) & CONFIG_S5PC110_T959_BOARD (T959)
linux-2.6.29/arch/arm/mach-s5pc110/mach-jupiter.c
linux-2.6.29/arch/arm/mach-s5pc110/sec_jack.c
linux-2.6.29/arch/arm/configs/kepler_rev02_defconfig
linux-2.6.29/drivers/usb/gadget/fsa9480_i2c.c
linux-2.6.29/drivers/usb/gadget/adb_ums_acm_mtp_rndis.c
linux-2.6.29/drivers/usb/gadget/f_mass_storage.c
linux-2.6.29/drivers/regulator/max8998_function.c
linux-2.6.29/drivers/video/samsung/logo_rgb24_wvga_portrait.h
linux-2.6.29/drivers/sensor/compass/yamaha.c
linux-2.6.29/drivers/media/video/ce147.c
linux-2.6.29/drivers/media/video/samsung/tv20_ap/s5p_tv_base.c
linux-2.6.29/drivers/input/keyboard/melfas_download.c
linux-2.6.29/drivers/input/keyboard/cypress/cypress-touchkey.c
linux-2.6.29/drivers/input/keyboard/melfas-touchkey.c
linux-2.6.29/drivers/input/keyboard/s3c-keypad.h
linux-2.6.29/drivers/input/keyboard/s3c-keypad.c
linux-2.6.29/drivers/input/touchscreen/qt602240.c
linux-2.6.29/drivers/power/s5pc110_battery.h
linux-2.6.29/drivers/power/fuel_gauge.c
linux-2.6.29/drivers/power/s5pc110_battery.c
CONFIG_S5PC110_T959_BOARD (T959)
linux-2.6.29/arch/arm/mach-s5pc110/mach-common.c
linux-2.6.29/drivers/mmc/host/sdhci.h
linux-2.6.29/drivers/mmc/host/sdhci-s3c.c
linux-2.6.29/drivers/input/keyboard/cypress/issp_main.c
CONFIG_KEPLER_VER_B2 (I897)
linux-2.6.29/arch/arm/configs/kepler_rev02_defconfig
CONFIG_T959_VER_B5 (T959)
linux-2.6.29/drivers/input/keyboard/s3c-keypad.h
*CONFIG_T959_VER_B5 is in the .config file but NOT any of the defconfigs. make a copy before running make clean/mrproper with the Vibrant source*
CONFIG_KEPLER_VER_B2 (I897) & CONFIG_T959_VER_B5 (T959)
linux-2.6.29/arch/arm/mach-s5pc110/include/mach/max8998_function.h
linux-2.6.29/arch/arm/plat-s5pc11x/pm.c
linux-2.6.29/drivers/regulator/max8998_function.c
linux-2.6.29/drivers/input/keyboard/s3c-keypad.c
linux-2.6.29/drivers/power/s5pc110_battery.h
linux-2.6.29/drivers/power/fuel_gauge.c
linux-2.6.29/drivers/power/s5pc110_battery.c
*CONFIG_T959_VER_B5 is in the .config file but NOT any of the defconfigs. make a copy before running make clean/mrproper with the Vibrant source*
CONFIG_KEYPAD_MELFAS_TOUCH (I897)
linux-2.6.29/arch/arm/configs/aries_rev04_defconfig
linux-2.6.29/arch/arm/configs/aries_rev00_defconfig
linux-2.6.29/arch/arm/configs/aries_rev05_defconfig
linux-2.6.29/arch/arm/configs/aries_rev02_defconfig
linux-2.6.29/arch/arm/configs/aries_rev01_defconfig
*No files use this CONFIG yet*
CONFIG_KEYPAD_MELFAS_TOUCH (I897) & CONFIG_KEYPAD_CYPRESS_TOUCH IT959)
linux-2.6.29/arch/arm/configs/kepler_rev02_defconfig
linux-2.6.29/arch/arm/configs/aries_rev03_defconfig
*No files use this CONFIG yet*
Nap time.
Sherpa
I'll take a wild guess: one of those AUDIO .config differences must be the culprit for the voice not working with a non-ATT modem.bin.
Wouldn't it be relatively easy to just replace the files and .config references with the vibrant/i9000 ones and end up with a Captivate kernel with working audio along with HSUPA support from an i9000 modem.bin?
The again, would you be so kind to build a few kernels, each with a different configuration for the various audio related differences, for people to test and conclude what causes the incompatibility?
SetiroN said:
I'll take a wild guess: one of those AUDIO .config differences must be the culprit for the voice not working with a non-ATT modem.bin.
Wouldn't it be relatively easy to just replace the files and .config references with the vibrant/i9000 ones and end up with a Captivate kernel with working audio along with HSUPA support from an i9000 modem.bin?
The again, would you be so kind to build a few kernels, each with a different configuration for the various audio related differences, for people to test and conclude what causes the incompatibility?
Click to expand...
Click to collapse
I'm just an idea guy trying to put out as much information as I can although I'm pretty sure Zilch would try just about anything I or anyone else compiles I have a new theory about screen rotation but I need the new sources at work to check the CONFIG tags in the /drivers/sensor/compass/yamaha.c file. I figure the download should be done in a few days or so.
Sherpa
Or I could scroll up and see them from the list I already made.....
Guilty Just don't mess with the power regulation or anything else terrifying and we've got a deal!
TMC_Sherpa said:
I need the new sources at work to check the CONFIG tags in the /drivers/sensor/compass/yamaha.c file. I figure the download should be done in a few days or so.
...
Or I could scroll up and see them from the list I already made.....
Edit Reason: I'm an idiot
Click to expand...
Click to collapse
thanks man!
Zilch25 said:
Guilty Just don't mess with the power regulation or anything else terrifying and we've got a deal!
Click to expand...
Click to collapse
Well at least the rest of us will know how good a job Samsung is doing with their wear leveling. I'm surprised designer posted the Odin one-click software and not you
TMC_Sherpa said:
Well at least the rest of us will know how good a job Samsung is doing with their wear leveling. I'm surprised designer posted the Odin one-click software and not you
Click to expand...
Click to collapse
I'll have you know I haven't flashed my phone once today... as for how many times I've done so this month... eh I'd rather not say
Fun things about the Yamaha compass. This would be much easier if Samsung called the file something other than yamaha.c or put anything in the header other than Samsung 2006-2015 but Yamaha does make compass/accelerometer chips and this is the only file in the /drivers/sensors directory that includes our CONFIG information to build it differently depending on the phone.
This is only a guess at this point although I would love to see someone mess with these values and check the orientation.
Hey hey, what do you know, it does work. Thanks to xcaliburinhand for building a I9000 kernel with our rotation in it.
I9000 garray #define YAMAHA_GSENSOR_TRANSFORMATION \
{ { -1, 0, 0}, \
{ 0, -1, 0}, \
{ 0, 0, -1} }
I897 garray #define YAMAHA_GSENSOR_TRANSFORMATION_KEPLER \
{ { 0, 1, 0}, \
{ -1, 0, 0}, \
{ 0, 0, -1} }
T959 garray #define YAMAHA_GSENSOR_TRANSFORMATION_KEPLER \
{ { -1, 0, 0}, \
{ 0, -1, 0}, \
{ 0, 0, -1} }
I9000 marray #define YAMAHA_MSENSOR_TRANSFORMATION \
{ { -1, 0, 0}, \
{ 0, 1, 0}, \
{ 0 , 0 , -1} }
I897 marray #define YAMAHA_MSENSOR_TRANSFORMATION_KEPLER \
{ { 0, -1, 0}, \
{ -1, 0, 0}, \
{ 0 , 0 , -1} }
T959 marray #define YAMAHA_MSENSOR_TRANSFORMATION_KEPLER \
{ { -1, 0, 0}, \
{ 0, 1, 0}, \
{ 0 , 0 , -1} }
*No idea what these are for or why they need to be there*
I9000 marray_00 #define YAMAHA_MSENSOR_TRANSFORMATION_00 \
{ { 0, -1, 0}, \
{ -1, 0, 0}, \
{ 0 , 0 , -1} }
I897 marray_B5 #define YAMAHA_MSENSOR_TRANSFORMATION_KEPLER_B5 \
{ { 0, 1, 0}, \
{ -1, 0, 0}, \
{ 0 , 0 , 1} }
I9000 garray_emul #define YAMAHA_GSENSOR_TRANSFORMATION_EMUL \
{ { -1, 0, 0}, \
{ 0, 1, 0}, \
{ 0, 0, 1} }
I9000 marray_emul #define YAMAHA_MSENSOR_TRANSFORMATION_EMUL \
{ { 1, 0, 0}, \
{ 0, 1, 0}, \
{ 0 , 0 , 1} }
For some reason our marray and garray are different to the Vibrant and I9000 and I'm guessing that the chip is oriented differently on our boards for some reason.
This all seems kinda ridiculous, there are files for AK8973b which is a 3-axis compass and an accel directory for a SMB380 which is a 3-axis accelerometer. Leftovers or junk for future phones? *shrug*
Someone (not Zilch, we need his phone alive and well...or alive anyway) needs to crack their phone open and take some better pics. We need to look for the triple tuning fork or any other chippies that look interesting.
As long as I'm doing slightly annoying Captivate vs Vibrant stuff
melfas-touchkey.c & cypress-touchkey.c
#define DEVICE_NAME "melfas-touchkey"
#if defined(CONFIG_S5PC110_T959_BOARD)
static int touchkey_keycode[] = {NULL, KEY_BACK, KEY_ENTER, KEY_MENU, KEY_END}; // BEHOLD3
#else
static int touchkey_keycode[5] = {NULL, KEY_BACK, KEY_MENU, KEY_ENTER, KEY_END};
#endif
is why the keys are backwards
If only I could figure out how
Code:
static DEVICE_ATTR(brightness, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, NULL, touch_led_control);
static ssize_t touch_led_control(struct device *dev, struct device_attribute *attr, const char *buf, size_t size)
{
unsigned char data;
if(sscanf(buf, "%d\n", &data) == 1) {
printk("touch_led_control: %d \n", data);
i2c_touchkey_write(&data, 1);
touchkey_led_status = data;
}
else
printk("touch_led_control Error\n");
return size;
}
if (device_create_file(touchkey_update_device.this_device, &dev_attr_brightness) < 0)
{
printk("%s device_create_file fail dev_attr_touch_update\n",__FUNCTION__);
pr_err("Failed to create device file(%s)!\n", dev_attr_brightness.attr.name);
}
works someone could get the message notification project going again.
TMC_Sherpa said:
I9000 garray #define YAMAHA_GSENSOR_TRANSFORMATION \
{ { -1, 0, 0}, \
{ 0, -1, 0}, \
{ 0, 0, -1} }
I897 garray #define YAMAHA_GSENSOR_TRANSFORMATION_KEPLER \
{ { 0, 1, 0}, \
{ -1, 0, 0}, \
{ 0, 0, -1} }
T959 garray #define YAMAHA_GSENSOR_TRANSFORMATION_KEPLER \
{ { -1, 0, 0}, \
{ 0, -1, 0}, \
{ 0, 0, -1} }
I9000 marray #define YAMAHA_MSENSOR_TRANSFORMATION \
{ { -1, 0, 0}, \
{ 0, 1, 0}, \
{ 0 , 0 , -1} }
I897 marray #define YAMAHA_MSENSOR_TRANSFORMATION_KEPLER \
{ { 0, -1, 0}, \
{ -1, 0, 0}, \
{ 0 , 0 , -1} }
T959 marray #define YAMAHA_MSENSOR_TRANSFORMATION_KEPLER \
{ { -1, 0, 0}, \
{ 0, 1, 0}, \
{ 0 , 0 , -1} }
*No idea what these are for or why they need to be there*
I9000 marray_00 #define YAMAHA_MSENSOR_TRANSFORMATION_00 \
{ { 0, -1, 0}, \
{ -1, 0, 0}, \
{ 0 , 0 , -1} }
I897 marray_B5 #define YAMAHA_MSENSOR_TRANSFORMATION_KEPLER_B5 \
{ { 0, 1, 0}, \
{ -1, 0, 0}, \
{ 0 , 0 , 1} }
I9000 garray_emul #define YAMAHA_GSENSOR_TRANSFORMATION_EMUL \
{ { -1, 0, 0}, \
{ 0, 1, 0}, \
{ 0, 0, 1} }
I9000 marray_emul #define YAMAHA_MSENSOR_TRANSFORMATION_EMUL \
{ { 1, 0, 0}, \
{ 0, 1, 0}, \
{ 0 , 0 , 1} }
Click to expand...
Click to collapse
This stuff here is linear algebra stuff. Looks like matrix transformations having to do with x, y, z orientation. If these matrices are different between the I-9000 and Captivate kernels, they are most definitely responsible for the orientation problems.
I am compiling Jelly Bean for my Milestone 2.
I get this error and can not fix it.
Code:
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.1.1
TARGET_PRODUCT=full_milestone2
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.2.0-23-generic-x86_64-with-Ubuntu-12.04-precise
HOST_BUILD_TYPE=release
BUILD_ID=JRO03C
OUT_DIR=out
============================================
build/core/base_rules.mk:79: *** Module name: 01_Vendor_ti_omx
build/core/base_rules.mk:80: *** Makefile location: hardware/ti/omap3/omx/core_plugin
build/core/base_rules.mk:81: *
build/core/base_rules.mk:82: * Each module must use a LOCAL_MODULE_TAGS in its
build/core/base_rules.mk:83: * Android.mk. Possible tags declared by a module:
build/core/base_rules.mk:84: *
build/core/base_rules.mk:85: * optional, debug, eng, tests, samples
build/core/base_rules.mk:86: *
build/core/base_rules.mk:87: * If the module is expected to be in all builds
build/core/base_rules.mk:88: * of a product, then it should use the
build/core/base_rules.mk:89: * "optional" tag:
build/core/base_rules.mk:90: *
build/core/base_rules.mk:91: * Add "LOCAL_MODULE_TAGS := optional" in the
build/core/base_rules.mk:92: * Android.mk for the affected module, and add
build/core/base_rules.mk:93: * the LOCAL_MODULE value for that component
build/core/base_rules.mk:94: * into the PRODUCT_PACKAGES section of product
build/core/base_rules.mk:95: * makefile(s) where it's necessary, if
build/core/base_rules.mk:96: * appropriate.
build/core/base_rules.mk:97: *
build/core/base_rules.mk:98: * If the component should be in EVERY build of ALL
build/core/base_rules.mk:99: * products, then add its LOCAL_MODULE value to the
build/core/base_rules.mk:100: * PRODUCT_PACKAGES section of
build/core/base_rules.mk:101: * build/target/product/core.mk
build/core/base_rules.mk:102: *
build/core/base_rules.mk:103: *** user tag detected on new module - user tags are only supported on legacy modules. Stop.
I have added the module to Core.mk and the optional thing to the Android.mk but that does not fix it.
Any help is appreciated.
p0isonra1n said:
I am compiling Jelly Bean for my Milestone 2.
I get this error and can not fix it.
Code:
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.1.1
TARGET_PRODUCT=full_milestone2
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.2.0-23-generic-x86_64-with-Ubuntu-12.04-precise
HOST_BUILD_TYPE=release
BUILD_ID=JRO03C
OUT_DIR=out
============================================
build/core/base_rules.mk:79: *** Module name: 01_Vendor_ti_omx
build/core/base_rules.mk:80: *** Makefile location: hardware/ti/omap3/omx/core_plugin
build/core/base_rules.mk:81: *
build/core/base_rules.mk:82: * Each module must use a LOCAL_MODULE_TAGS in its
build/core/base_rules.mk:83: * Android.mk. Possible tags declared by a module:
build/core/base_rules.mk:84: *
build/core/base_rules.mk:85: * optional, debug, eng, tests, samples
build/core/base_rules.mk:86: *
build/core/base_rules.mk:87: * If the module is expected to be in all builds
build/core/base_rules.mk:88: * of a product, then it should use the
build/core/base_rules.mk:89: * "optional" tag:
build/core/base_rules.mk:90: *
build/core/base_rules.mk:91: * Add "LOCAL_MODULE_TAGS := optional" in the
build/core/base_rules.mk:92: * Android.mk for the affected module, and add
build/core/base_rules.mk:93: * the LOCAL_MODULE value for that component
build/core/base_rules.mk:94: * into the PRODUCT_PACKAGES section of product
build/core/base_rules.mk:95: * makefile(s) where it's necessary, if
build/core/base_rules.mk:96: * appropriate.
build/core/base_rules.mk:97: *
build/core/base_rules.mk:98: * If the component should be in EVERY build of ALL
build/core/base_rules.mk:99: * products, then add its LOCAL_MODULE value to the
build/core/base_rules.mk:100: * PRODUCT_PACKAGES section of
build/core/base_rules.mk:101: * build/target/product/core.mk
build/core/base_rules.mk:102: *
build/core/base_rules.mk:103: *** user tag detected on new module - user tags are only supported on legacy modules. Stop.
I have added the module to Core.mk and the optional thing to the Android.mk but that does not fix it.
Any help is appreciated.
Click to expand...
Click to collapse
Think maybe this might help you http://forum.xda-developers.com/showthread.php?t=1071833
Nope
It didn't help because the module I have the error with has no user tags and its the last thing stopping me compiling.
May be you should try contacting Quarx, his bringing JB to Defy...
Sent from my MotoA953
I Will
Megalith27 said:
May be you should try contacting Quarx, his bringing JB to Defy...
Sent from my MotoA953
Click to expand...
Click to collapse
I'll try contacting him.
Hello XDA-Developers... that's my first post by the way but I think that we can do something very important to the ATRIX users.
I'm from Cuba, I got an Atrix about 2 weeks (I have a Samsung Focus too) but I decided take that Android phone thinking in the Atrix-Lapdock combination. Here I have the really bad issue of wifi problems with my country code operator, I tryed every fix out there in the internet and here like
[Solved] Fix for nonworking WiFi on Simunlocked ATT Atrix 4G http://forum.xda-developers.com/showthread.php?t=1058260
[FIX] Final fix for nonworking WIFI on unlocked ATT Atrix in some countries http://forum.xda-developers.com/showthread.php?t=1077329
but I did'nt have a success
Reading about that issue I think that the problem is just inside the code of ATRIX wifi drivers and I made my own decision of search in the source looking for country codes segment, do a modification and re-compile the drivers.
After a week digging in every files of wifi drivers source code I think that I finally found a solution but I need help. I'm a noob in Adroid world but I think that mybe with help of some developers from XDA we can do that job that we will appreciated for many users around the world.
Well, now the important thing. I donwloaded a atrix-wifi-module from Atrix Dev Team on github, after a few days looking the source I found that in \open-src\src\dhd\sys\dhd_custom_gpio.c file...
"dhd_custom_gpio.c" that C file can be our solution
and here a piece of code, the function with the list of countries
Code:
/* Customized Locale table : OPTIONAL feature */
const struct cntry_locales_custom translate_custom_table[] = {
/* Table should be filled out based on custom platform regulatory requirement */
#ifdef COUNTRY_REGIONS
{"", "XY", 4}, /* universal if Counry code is unknow or empty */
{"US", "US", 69}, /* input ISO "US" to : US regrev 69 */
{"CA", "US", 69}, /* input ISO "CA" to : US regrev 69 */
{"EU", "EU", 5}, /* European union countries */
{"AT", "EU", 5},
{"BE", "EU", 5},
{"BG", "EU", 5},
{"CY", "EU", 5},
{"CZ", "EU", 5},
{"DK", "EU", 5},
{"EE", "EU", 5},
{"FI", "EU", 5},
{"FR", "EU", 5},
{"DE", "EU", 5},
{"GR", "EU", 5},
{"HU", "EU", 5},
{"IE", "EU", 5},
{"IT", "EU", 5},
{"LV", "EU", 5},
{"LI", "EU", 5},
{"LT", "EU", 5},
{"LU", "EU", 5},
{"MT", "EU", 5},
{"NL", "EU", 5},
{"PL", "EU", 5},
{"PT", "EU", 5},
{"RO", "EU", 5},
{"SK", "EU", 5},
{"SI", "EU", 5},
{"ES", "EU", 5},
{"SE", "EU", 5},
{"GB", "EU", 5}, /* input ISO "GB" to : EU regrev 05 */
{"KR", "XY", 3},
{"AU", "XY", 3},
{"CN", "XY", 3}, /* input ISO "CN" to : XY regrev 03 */
{"TW", "XY", 3},
{"AR", "XY", 3},
{"MX", "XY", 3}
#endif /* COUNTRY_REGIONS */
};
At the end of the file are another important function
Code:
/* Customized Locale convertor
* input : ISO 3166-1 country abbreviation
* output: customized cspec
*/
void get_customized_country_code(char *country_iso_code, wl_country_t *cspec)
{
int size, i;
size = ARRAYSIZE(translate_custom_table);
if (cspec == 0)
return;
if (size == 0)
return;
for (i = 0; i < size; i++) {
if (strcmp(country_iso_code, translate_custom_table[i].iso_abbrev) == 0) {
memcpy(cspec->ccode, translate_custom_table[i].custom_locale, WLC_CNTRY_BUF_SZ);
cspec->rev = translate_custom_table[i].custom_locale_rev;
return;
}
}
#ifdef COUNTRY_REGIONS
/* if no country code matched return first universal code from translate_custom_table */
memcpy(cspec->ccode, translate_custom_table[0].custom_locale, WLC_CNTRY_BUF_SZ);
cspec->rev = translate_custom_table[0].custom_locale_rev;
#endif /* COUNTRY_REGIONS */
return;
}
And finally we can see that comment
/* if no country code matched return first universal code from translate_custom_table */
I hope we can recompile it changing universalcode {"", "XY", 4} and put {"", "US", 69}
then if the country code of our provider is not in the list the wifi driver will act like we are in US and that can solve the wifi problems for every users...
I need help to do that work please... Developers from XDA help me!!!!
are you running 2.2 or 2.3 or even 4.0? The lg drivers only work with 2.2,, if you are on 2.2 i suggest you unlock your bootloader and flash cm7.2 and try if wifi works than. Another thing is the consideration that the wifi chip is broken (i doubt it though), can you do a dmesg and a logcat and post them here while you try connecting to wifi?
Have you tried the fix where you edit the database to US and make it read only than, if so did it work?
With editing and recompiling those drivers/modules i cant really help you since its not my domain of knowledge, but your idea seems reasonable and probably doable. I dont have access to my atrix now, so i cant test or anything for you, possibly i could compile/crosscompile that module for you, i would need the full sources for the driver/kernels with the makefile and the properly edited file as you suggested.
ScorpionXII said:
Hello XDA-Developers... that's my first post by the way but I think that we can do something very important to the ATRIX users.
I'm from Cuba, I got an Atrix about 2 weeks (I have a Samsung Focus too) but I decided take that Android phone thinking in the Atrix-Lapdock combination. Here I have the really bad issue of wifi problems with my country code operator, I tryed every fix out there in the internet and here like
[Solved] Fix for nonworking WiFi on Simunlocked ATT Atrix 4G http://forum.xda-developers.com/showthread.php?t=1058260
[FIX] Final fix for nonworking WIFI on unlocked ATT Atrix in some countries http://forum.xda-developers.com/showthread.php?t=1077329
but I did'nt have a success
Reading about that issue I think that the problem is just inside the code of ATRIX wifi drivers and I made my own decision of search in the source looking for country codes segment, do a modification and re-compile the drivers.
After a week digging in every files of wifi drivers source code I think that I finally found a solution but I need help. I'm a noob in Adroid world but I think that mybe with help of some developers from XDA we can do that job that we will appreciated for many users around the world.
Well, now the important thing. I donwloaded a atrix-wifi-module from Atrix Dev Team on github, after a few days looking the source I found that in \open-src\src\dhd\sys\dhd_custom_gpio.c file...
"dhd_custom_gpio.c" that C file can be our solution
and here a piece of code, the function with the list of countries
At the end of the file are another important function
And finally we can see that comment
/* if no country code matched return first universal code from translate_custom_table */
I hope we can recompile it changing universalcode {"", "XY", 4} and put {"", "US", 69}
then if the country code of our provider is not in the list the wifi driver will act like we are in US and that can solve the wifi problems for every users...
I need help to do that work please... Developers from XDA help me!!!!
Click to expand...
Click to collapse
@ripee, list of codes