Jump to content

Advent Vega kernel source code now available!


Guest PaulOBrien

Recommended Posts

Guest grnunn

A little update from codec land... I took my comparison file and took the brute force approach to debugging the problem.

I came across one register difference that stopped the speaker using the current (old style) driver.

The register is C7

Default for old driver is FFF0 the new driver writes 0000

15:12 - Appear to be volume - 0 =OFF F= MAX - it clicks while updating so it is bypassing the zero cross detect

8 - Appears to be an enable

Not sure about the other bits

And the good news is that if I plug in the headphones C7 makes no difference at all.

Hope this helps

Link to comment
Share on other sites

Guest Daedric1383

@All,

For all the people who have problems with crashing.... Please try this kernel to see if the crash problem is gone...

VegaCream-b4.1-kernel-0706-1.zip

Regards,

Scanno

Testing... but if i have a prime, why am i getting LP0 problems ?

Can anyone report if they get a HOTREBOOT after enable Wifi for the first time ? This is a regular for me, since B4

Steps to reproduce on my Viewpad 10S:

  1. CWM - Restore defaults
  2. Install B4.1 from CWM
  3. Flash VegaCream-b4.1-kernel-0706-1
  4. Reboot
  5. Wizard, define GMT+1
  6. Ignore google account
  7. Set name
  8. Settings, disable 3G, wait for the 3G to shutdown
  9. Settings, disable GPS
  10. Settings, enable Wifi
  11. HOTREBOOT, with Wifi enabled.

First test:

  1. Settings, screen, timout = 15 secs
  2. Wait for standby
  3. Device dims
  4. Device standby
  5. Buy Chronicles of Riddick on gog for 6$
  6. Turn VP10S on, lock screen, no problem.

Second test:

  1. Plug USB keyboard. (cheapo usb keyb/cover from ebay)
  2. Turn USB Host on
  3. Let device standby
  4. Write "First test" (above)
  5. Turn on, no problem.

Ok, third test:

  1. USB Host ON, keyb plugged in (continued from above)
  2. Device enters standby
  3. Went for a smoke
  4. Other house business
  5. Turn device on (after what, 5/10 minutes)
  6. Device came on. No problem.

Differences, when the device was sleeping and USBhost/keyb were ON, everytime i press the power button the USB would flash, like if plugging the keyb again. Now, it doesn't. I guess LP0 turns the USB off, and LP1 doesn't.

Edited by Daedric1383
Link to comment
Share on other sites

Guest Scanno

Seems that setting .suspend_mode = TEGRA_SUSPEND_LP1 solved the crashing for at least two people now... So that seems the correct fix.

Link to comment
Share on other sites

Guest ejtagle

Testing... but if i have a prime, why am i getting LP0 problems ?

Can anyone report if they get a HOTREBOOT after enable Wifi for the first time ? This is a regular for me, since B4

Steps to reproduce on my Viewpad 10S:

  1. CWM - Restore defaults
  2. Install B4.1 from CWM
  3. Flash VegaCream-b4.1-kernel-0706-1
  4. Reboot
  5. Wizard, define GMT+1
  6. Ignore google account
  7. Set name
  8. Settings, disable 3G, wait for the 3G to shutdown
  9. Settings, disable GPS
  10. Settings, enable Wifi
  11. HOTREBOOT, with Wifi enabled.

Post dmesg, please... And logcat could also help here ;)

Link to comment
Share on other sites

Guest Daedric1383

... The 03P (=Prime) has a correction on the bootloader code that should make lp0 work ...

Since i have a Prime, would using a official Viewpad 10S bootloader.bin solve the issue ? Or are they exactly the same ?

Anyone around here with a VP10s or other A03P shuttle variant ?

Link to comment
Share on other sites

Guest Daedric1383

Post dmesg, please... And logcat could also help here ;)

Hello ejtagle, as requested

Procedure:

  1. Boot to CWM
  2. Wipe data/restore defaults
  3. Flash B4.1
  4. Flash VegaCream-b4.1-kernel-0706-1
  5. reboot
  6. Inicial wizard, configure GMT and Name
  7. Open terminal
  8. su
  9. cat /proc/kmsg > /sdcard/kmsg.txt
  10. Add terminal tab
  11. su
  12. logcat > /sdcard/log.txt
  13. Press home
  14. settings
  15. Disable 3G
  16. Disable GPS
  17. Enable Wifi
  18. Hotreboot.

kmsg.txt

log.txt

Link to comment
Share on other sites

Guest brucelee666

Glad to see my findings on LP0 seems to have help find the fix to issues re freeze/reboots for some people, guess is was time well spent looking through last_kmsg files.

For further info re. bootloader.bin, the one used in Scanno's nvflash correct me if I am wrong was also the one used in vegaICS and comes in at 941,512bytes, this file originally came from the last official vega release 1.10 back in May of 2011.

Due to my touchscreen issues I downloaded the Viewsonic 10s ver 1.11 released 28/07/2011 as an attempt to fix it see this post for link, on checking the contents of this file you will find the bootloader.bin is bigger at 942,288bytes so does appear to be a newer version or at least different than the one we have used, if that makes any difference to the LP0 bug I don't know just thought I would share.

Daedric1383 - I could not see anything in your kmsg.txt what I will say is I have had this happen and seen people mention it before (when the reboot occurs it does not produce a last_kmsg), it only happens if you turn GPS Satellites off in location services (nothing to do with disable 3g or enable wifi I think) in android settings which is why not everyone mentions it as probably not everyone does this also the reboot only happens once when you initially turn it off, once rebooted does not seem to cause any further issues.

Not been top of my list to look at due to reasons above and other things were ahead of it, need to check what the android settings code is doing when you deselect this option as this may point to a solution also gps.shuttle.so code - see DEBUG info at end of logcat file.

Edited by brucelee666
Link to comment
Share on other sites

Guest Scanno
Glad to see my findings on LP0 seems to have help find the fix to issues re freeze/reboots.

For further info re. bootloader.bin, the one used in Scanno's nvflash correct me if I am wrong was also the one used in vegaICS and comes in at 941,512bytes, this file originally came from the last official vega release 1.10 back in May of 2011.

Due to my touchscreen issues I downloaded the Viewsonic 10s ver 1.11 released 28/07/2011 as an attempt to fix it see this post for link, on checking the contents of this file you will find the bootloader.bin is bigger at 942,288bytes so does appear to be a newer version or at least different than the one we have used, if that makes any difference to the LP0 bug I don't know just thought I would share.

Daedric1383 - I could not see anything in your kmsg.txt what I will say is I have had this happen and seen people mention it before (when the reboot occurs it does not produce a last_kmsg, it only happens if you turn GPS Satellites off in location services in android settings which is why not everyone mentions it as probably not everyone does this also it only happens once when you initially turn it off after the reboot and does not seem to cause any further issues.

Not been top of my list to look at due to reasons above and other things were ahead of it, need to check what the android settings code is doing when you deselect this option as this may point to a solution

Yep I am using the bin that was also used for vegaics.

Link to comment
Share on other sites

Guest Daedric1383

Yep I am using the bin that was also used for vegaics.

I can try 4.1 with a LP0 kernel (yours latest) and viewpad10s bootloader.bin

But to flash that, i'll need NVFlash... give me some minutes :)

Link to comment
Share on other sites

Guest fosser2

ejtagle,

I hate to break up this discussion but I have a quick question about nvflash. I have a viewsonic gtablet and our internal storage that the rom is installed to is a 512mb NAND chip. I'm not sure if the Vega uses emmc or nand for their boot device but basically I'm trying to switch over to emmc as the boot device and get rid of our nand all together. In theory it is possible, but there is not enough information out there for me to be able to do it. The command that "should" be able to swap nand and emmc is:

   --setbootdevtype S

	   sets the boot device type fuse value for the device name.

	   allowed device name string mentioned below:

		   emmc, nand_x8, nand_x16, nor, spi

   --setbootdevconfig N

	   sets the boot device config fuse value either hex or decimal

I am wondering if you know anything about the actual swapping of nand/emmc through nvflash. Any help you can give me on this would be greatly appreciated. Thanks

-fosser2

Link to comment
Share on other sites

Guest Daedric1383

I can try 4.1 with a LP0 kernel (yours latest) and viewpad10s bootloader.bin

But to flash that, i'll need NVFlash... give me some minutes :)

No luck... i had 1 good suspend, but i was running ADB via usb, so i don't know if we got LP0.

After that... always reboots...

Logs _1 are running via ADB, USB perhiperal.

Logs _2 start when i changed to host mode.

i was checking flash.cfg and found a typo, i think.

Most EOL are windows types, but there's one Linux type (CR vs CR/LF)

Can anyone confirm ?

kmsg_1.txt

logcat_1.txt

kmsg_2.txt

logcat_2.txt

Edited by Daedric1383
Link to comment
Share on other sites

Guest ejtagle

Hello ejtagle, as requested

Procedure:

  1. Boot to CWM
  2. Wipe data/restore defaults
  3. Flash B4.1
  4. Flash VegaCream-b4.1-kernel-0706-1
  5. reboot
  6. Inicial wizard, configure GMT and Name
  7. Open terminal
  8. su
  9. cat /proc/kmsg > /sdcard/kmsg.txt
  10. Add terminal tab
  11. su
  12. logcat > /sdcard/log.txt
  13. Press home
  14. settings
  15. Disable 3G
  16. Disable GPS
  17. Enable Wifi
  18. Hotreboot.

It's not kernel related :D :D ... It is the gps library that crashes and manages to crash the android subsystem. Keep in mind that the GPS function is also provided by the EM330W 3G modem, so it makes plenty of sense that enabling/disabling 3G could crash the GPS, as those functions are provided by the same piece of hardware. Ideally, we should create some sort of cooperation between RIL and gps libs... That cooperation does not exist yet...

Link to comment
Share on other sites

Guest ejtagle

ejtagle,

I hate to break up this discussion but I have a quick question about nvflash. I have a viewsonic gtablet and our internal storage that the rom is installed to is a 512mb NAND chip. I'm not sure if the Vega uses emmc or nand for their boot device but basically I'm trying to switch over to emmc as the boot device and get rid of our nand all together. In theory it is possible, but there is not enough information out there for me to be able to do it. The command that "should" be able to swap nand and emmc is:

   --setbootdevtype S

	   sets the boot device type fuse value for the device name.

	   allowed device name string mentioned below:

		   emmc, nand_x8, nand_x16, nor, spi

   --setbootdevconfig N

	   sets the boot device config fuse value either hex or decimal

I am wondering if you know anything about the actual swapping of nand/emmc through nvflash. Any help you can give me on this would be greatly appreciated. Thanks

-fosser2

I dont know if it is possible or not... I thought the boot device was configured by blowing fuses... Not something that can reverted....

Link to comment
Share on other sites

Guest Scanno

I guess we have to see now how jellybean behaves..... seems it has hit aosp..... Tagged as android-4.1.1_r1. Let's hope that we do not need any adjustments...

@Eduardo,

I have compiled the kernel with the old touch screen driver (the improved one used in the .39 kernel) but also there problems with locking. I have used the latest shuttle_clocks.c. attaches a dmesg from the locking up. I came out of the lock because I was in the lock screen and after a few suspend/wakeups I have able to continue. Perhaps this helps...

About 4.1... what do you think where we should start. Try plain aosp or try to use the modified sources (wpa_supplicant, netd, hardware_legacy, etc).

Hope it does not need much adjusting.....

dmesg0711.txt

Edited by Scanno
Link to comment
Share on other sites

Guest brucelee666

Scanno,

Noticed in the early hours 4.1 was being released to late to download so away to start downloading now to have a look, I would think we would still need modified sources or at least have to merge some changes to previous versions into 4.1 aosp.

We also are still waiting on nvidia releasing the xoom binaries for 4.1 which we would also need although it may work with our previous versions.

My other thought would be moving to the 15r7 kernel base as its only 2 weeks old compared to 3 months old for the 3.1 we are using now and may be better for 4.1, I posted a few days ago about changes I think would be needed to get patches to work with 15r7 and wonder if Eduardo managed to have a look or has any suggestions at what would need changed, my thing was the changes to how usb worked the other things looked like they could be changed ok.

Link to comment
Share on other sites

Guest fosser2

Scanno,

Noticed in the early hours 4.1 was being released to late to download so away to start downloading now to have a look, I would think we would still need modified sources or at least have to merge some changes to previous versions into 4.1 aosp.

We also are still waiting on nvidia releasing the xoom binaries for 4.1 which we would also need although it may work with our previous versions.

My other thought would be moving to the 15r7 kernel base as its only 2 weeks old compared to 3 months old for the 3.1 we are using now and may be better for 4.1, I posted a few days ago about changes I think would be needed to get patches to work with 15r7 and wonder if Eduardo managed to have a look or has any suggestions at what would need changed, my thing was the changes to how usb worked the other things looked like they could be changed ok.

I finally started looking into it. If you don't want to take the time to mirror the nvidia source to github I already did it the other night. You can fork it from here.

https://github.com/fosser2/android-tegra-nv-3.1.10-rel-15r7

Link to comment
Share on other sites

Guest brucelee666

I finally started looking into it. If you don't want to take the time to mirror the nvidia source to github I already did it the other night. You can fork it from here.

https://github.com/f...3.1.10-rel-15r7

Thanks,

I already have the 15r7 code my question for Eduardo more relates to how changes like this relate to the board-shuttle-usb.c and changes to tegra-otg like this as we already use a modified one from the kernel patch and more changes although I am looking through and seeing what I think needs to be changed to Eduardos patches, but not being a kernel dev (although I try to see what I can do) I hope Eduardo can shed some light on the possible changes like the ones I mentioned in this post.

Link to comment
Share on other sites

Guest Scanno

Ok was trying to build jellybean and have adjusted some code because some templates got redefined... all the LOGx templates were renamed to ALOGx.

Anyway i am stuck now at the custom hardware_legacy/audio that is giving errors.

The LOG redefines hit all the custom code..

Anyway this is the last thing i got


target thumb C++: libaudiopolicy_legacy <= hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp

target thumb C++: libaudiopolicy_legacy <= hardware/libhardware_legacy/audio/AudioPolicyCompatClient.cpp

target thumb C++: libaudiopolicy_legacy <= hardware/libhardware_legacy/audio/audio_policy_hal.cpp

hardware/libhardware_legacy/audio/AudioPolicyCompatClient.cpp: In member function 'virtual audio_io_handle_t android_audio_legacy::AudioPolicyCompatClient::openOutput(uint32_t*, uint32_t*, uint32_t*, uint32_t*, uint32_t*, android_audio_legacy::AudioSystem::output_flags)':

hardware/libhardware_legacy/audio/AudioPolicyCompatClient.cpp:42:38: error: 'audio_policy_output_flags_t' was not declared in this scope

hardware/libhardware_legacy/audio/AudioPolicyCompatClient.cpp:42:71: error: cannot convert 'uint32_t* {aka unsigned int*}' to 'audio_devices_t*' in argument passing

hardware/libhardware_legacy/audio/AudioPolicyCompatClient.cpp: In member function 'virtual audio_io_handle_t android_audio_legacy::AudioPolicyCompatClient::openInput(uint32_t*, uint32_t*, uint32_t*, uint32_t*, uint32_t)':

hardware/libhardware_legacy/audio/AudioPolicyCompatClient.cpp:73:56: error: cannot convert 'uint32_t* {aka unsigned int*}' to 'audio_devices_t*' in argument passing

make: *** [out/target/product/shuttle/obj/STATIC_LIBRARIES/libaudiopolicy_legacy_intermediates/AudioPolicyCompatClient.o] Error 1

make: *** Waiting for unfinished jobs....

hardware/libhardware_legacy/audio/audio_policy_hal.cpp:141:40: error: 'audio_policy_output_flags_t' has not been declared

hardware/libhardware_legacy/audio/audio_policy_hal.cpp: In function 'int android_audio_legacy::create_legacy_ap(const audio_policy_device*, audio_policy_service_ops*, void*, audio_policy**)':

hardware/libhardware_legacy/audio/audio_policy_hal.cpp:304:35: error: invalid conversion from 'void (*)(audio_policy*, int)' to 'void (*)(audio_policy*, audio_mode_t)' [-fpermissive]

hardware/libhardware_legacy/audio/audio_policy_hal.cpp:311:30: error: invalid conversion from 'audio_io_handle_t (*)(audio_policy*, audio_stream_type_t, uint32_t, uint32_t, uint32_t, int) {aka int (*)(audio_policy*, audio_stream_type_t, unsigned int, unsigned int, unsigned int, int)}' to 'audio_io_handle_t (*)(audio_policy*, audio_stream_type_t, uint32_t, audio_format_t, uint32_t, audio_output_flags_t) {aka int (*)(audio_policy*, audio_stream_type_t, unsigned int, audio_format_t, unsigned int, audio_output_flags_t)}' [-fpermissive]

hardware/libhardware_legacy/audio/audio_policy_hal.cpp:315:29: error: invalid conversion from 'audio_io_handle_t (*)(audio_policy*, int, uint32_t, uint32_t, uint32_t, audio_in_acoustics_t) {aka int (*)(audio_policy*, int, unsigned int, unsigned int, unsigned int, audio_in_acoustics_t)}' to 'audio_io_handle_t (*)(audio_policy*, audio_source_t, uint32_t, audio_format_t, uint32_t, audio_in_acoustics_t) {aka int (*)(audio_policy*, audio_source_t, unsigned int, audio_format_t, unsigned int, audio_in_acoustics_t)}' [-fpermissive]

hardware/libhardware_legacy/audio/audio_policy_hal.cpp:323:42: error: invalid conversion from 'uint32_t (*)(const audio_policy*, audio_stream_type_t) {aka unsigned int (*)(const audio_policy*, audio_stream_type_t)}' to 'audio_devices_t (*)(const audio_policy*, audio_stream_type_t)' [-fpermissive]

hardware/libhardware_legacy/audio/audio_policy_hal.cpp:328:36: error: invalid conversion from 'bool (*)(const audio_policy*, int, uint32_t) {aka bool (*)(const audio_policy*, int, unsigned int)}' to 'bool (*)(const audio_policy*, audio_stream_type_t, uint32_t) {aka bool (*)(const audio_policy*, audio_stream_type_t, unsigned int)}' [-fpermissive]

make: *** [out/target/product/shuttle/obj/STATIC_LIBRARIES/libaudiopolicy_legacy_intermediates/audio_policy_hal.o] Error 1

menno@asus:~/vegabean$

Edited by Scanno
Link to comment
Share on other sites

Guest ejtagle

I guess we have to see now how jellybean behaves..... seems it has hit aosp..... Tagged as android-4.1.1_r1. Let's hope that we do not need any adjustments...

@Eduardo,

I have compiled the kernel with the old touch screen driver (the improved one used in the .39 kernel) but also there problems with locking. I have used the latest shuttle_clocks.c. attaches a dmesg from the locking up. I came out of the lock because I was in the lock screen and after a few suspend/wakeups I have able to continue. Perhaps this helps...

About 4.1... what do you think where we should start. Try plain aosp or try to use the modified sources (wpa_supplicant, netd, hardware_legacy, etc).

Hope it does not need much adjusting.....

Still seems as if the touchscreen controller just died. Also died tegra gralloc...

Scanno,

Noticed in the early hours 4.1 was being released to late to download so away to start downloading now to have a look, I would think we would still need modified sources or at least have to merge some changes to previous versions into 4.1 aosp.

We also are still waiting on nvidia releasing the xoom binaries for 4.1 which we would also need although it may work with our previous versions.

My other thought would be moving to the 15r7 kernel base as its only 2 weeks old compared to 3 months old for the 3.1 we are using now and may be better for 4.1, I posted a few days ago about changes I think would be needed to get patches to work with 15r7 and wonder if Eduardo managed to have a look or has any suggestions at what would need changed, my thing was the changes to how usb worked the other things looked like they could be changed ok.

Most of thimgs port trivially to the 15r7 kernel, except the USB configuration. board-shuttle-usb.c needs to be rewritten ...As they completely refactored the usb stack. I already did it for the device i am working in, guess it is not hard to do. I can confirm that nvidia propietary libs we are using still work flawlessly with the rel15r7 ...

Link to comment
Share on other sites

Guest brucelee666

Eduardo,

Thanks for the reply, I thought most of it seemed trivial it was just the amount of changes to the USB that had been made, looked like alot more work than the other stuff to get it working do you have time to make the changes ? - good to know current libs still work in 15r7.

Scanno,

You got further than me testing a jellybean build, managed to download and just having a quick look probably be later today now before I look in detail.

Does seem they changed the HAL module for audio as an example the HAL_MODULE_INFO_SYM is different for .version see other devices for example - our audio_hw is similar to the new asus device or samsung-tuna device.

Just to add to the audio_hw the other devices also use tinyalsa and have added an audio_policy.conf file to the setup, this may be another thing to add with possible changes to our audio_hw file.

Also some of the files like /hardware/libhardware_legacy/wifi/wifi.c have been updated from 4.0.4 to 4.1.1 so we probably need to make the changes Eduardo made to the new file rather than using the old 4.0.4 patched version, probably the same with other files.

Edited by brucelee666
Link to comment
Share on other sites

Guest Scanno

@Brucelee666, ejatgle..

I have put the modifications i made so far in our device config in a new branch (jb) on github... so if anyone wants to pull it :-)

So far i have replaced the overlay directory with the one from the wingray jb config. I have changed the device.mk.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.