Skip to content

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