hammerhead upstream

flto edited this page Mar 18, 2018 · 1 revision

Update 20181004: You can find the old patches here (applied to linux-next 20180315 ba5add06b563a492a599fd55074327c66261fa58)

Working

  • USB OTG
  • Display / GPU (no iommu, clocks not properly configured for full performance)
  • MMC
  • Charger
  • Touchscreen
  • Backlight
  • WiFi
  • Bluetooth
  • Sensors (except proximity+light)
  • Status LEDs
  • Volume/power buttons
  • Vibrator
  • Hardware video encode / decode
  • Modem (tested GPS only, I don't have a SIM card)

Partially working

  • Camera (only front camera, raw only, missing sensor controls, no ois)
  • Audio (headphone output is possible)
  • Fuel gage (minimal/incomplete driver)

Not working

  • CPUfreq
  • Flash LED (no driver)
  • NFC (no driver + I can't test this)
  • HDMI (I don't have the cable, but should be easy to get working?)
  • Wireless charging (I can't test it, but it might work already?)
  • Hardware JPEG compression
  • IOMMUs (used with GPU/audio/camera/venus)
  • anything else?

Testing

Tested on a hammerhead-rev-11, all revisions except rev-f should work with this kernel (rev-f needs different panel/touch config).

test image (somewhat large because it includes all firmware files)

fastboot boot test.img

After ~10 seconds the screen should display the linux framebuffer console, and the device should appear as a USB network device. Test image sets the device to 10.0.0.2 and runs telnetd.

ip link set usb0 up && ip address add 10.0.0.1/16 dev usb0
telnet 10.0.0.2

Testing is straightforward in most cases (sysfs for sensors, charger, LEDs, wpa_supplicant for wifi, hciconfig/hcitool for bluetooth).

GPU / Touch

killall -9 refresh # first kill the framebuffer refresher
MESA_GL_VERSION_OVERRIDE="3.3" MESA_GLSL_VERSION_OVERRIDE="330" test_shell

Hardware accelerated demo program with touch feedback.

Camera

media-ctl -V '"msm_csiphy0":0[fmt:SBGGR10/3280x2464]'
media-ctl -V '"msm_csid0":0[fmt:SBGGR10/3280x2464]'
media-ctl -V '"msm_ispif0":0[fmt:SBGGR10/3280x2464]'
media-ctl -V '"msm_vfe0_rdi0":0[fmt:SBGGR10/3280x2464]'
media-ctl -l '"msm_csiphy0":1->"msm_csid0":0[1]'
media-ctl -l '"msm_csid0":1->"msm_ispif0":0[1]'
media-ctl -l '"msm_ispif0":1->"msm_vfe0_rdi0":0[1]'
test_camera /dev/video2

Creates picture.raw with a frame from camera, format

Hardware decode / encode

v4l2-encode -d /dev/video1 -c h264 -w 1280 -h 720 -f ./

Creates encoded.h264 with encoded frames from a test pattern

*Missing decode test

Audio

mixer set 'CLASS_H_DSM MUX' DSM_HPHL_RX1
mixer set 'HPHL DAC Switch' 1
mixer set 'RX1 MIX1 INP1' RX1
mixer set 'RX2 MIX1 INP1' RX2
mixer set 'SLIM RX1 MUX' AIF1_PB
mixer set 'SLIM RX2 MUX' AIF1_PB
mixer set 'SLIMBUS_0_RX Audio Mixer MultiMedia1' 1
pcm_test /dev/snd/pcmC0D0p 1024 0

Plays a sine wave in headphones. Doesn't always work.

GPS

qmi_loc2

Dumps NMEA strings from modem. Might take a while to find satellites and give an accurate position since rmtfs is initialized to zero.

Vibrator

fftest /dev/input/event2

References for added drivers

Audio

https://git.linaro.org/people/srinivas.kandagatla/linux.git/log/?h=v4.16-rc1-dsp-audio-v3

https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/log/?h=v4.15/tracking-qcomlt-downstream-slimbus

https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/log/?h=v4.15/tracking-qcomlt-downstream-sps

https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/log/?h=v4.15/tracking-qcomlt-wcd9335

Camera I2C

OCMEM

Status LEDs

Kernel config

.config

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.