mirror of
https://github.com/armbian/build.git
synced 2025-09-19 12:41:39 +02:00
I have changed the way the patches are generated a bit. Instead of using orange-pi branch from megous tree for 6.6 kernel, I have used the following kernel branches a83t-suspend, af8133j, anx, audio, axp, cam, drm, err, fixes, mbus, modem, opi3, pb, pinetab, pp, ppkb, samuel, speed, tbs-a711, ths These branches were carefully chosen to include only allwinner related patches and remove importing of the rockchip related patches into the allwinner kernel. Following patches are modified to fix patch application failure - patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch - patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch - patches.armbian/arm64-dts-allwinner-h616-Add-efuse_xlate-cpu-frequency-scaling-v1_6_2.patch - patches.armbian/arm64-dts-allwinner-h616-LED-green_power_on-red_status_heartbeat.patch - patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch - patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1.patch Following patches are modified because of kernel api change to fix compilation failure - patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch - patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch
65 lines
1.7 KiB
Diff
65 lines
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= <megi@xff.cz>
|
|
Date: Wed, 23 Oct 2019 05:08:35 +0200
|
|
Subject: gnss: ubx: Send soft powerdown message on suspend
|
|
|
|
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
|
---
|
|
drivers/gnss/ubx.c | 35 ++++++++++
|
|
1 file changed, 35 insertions(+)
|
|
|
|
diff --git a/drivers/gnss/ubx.c b/drivers/gnss/ubx.c
|
|
index c951be202ca2..6f09229da095 100644
|
|
--- a/drivers/gnss/ubx.c
|
|
+++ b/drivers/gnss/ubx.c
|
|
@@ -33,11 +33,46 @@ static int ubx_set_active(struct gnss_serial *gserial)
|
|
return 0;
|
|
}
|
|
|
|
+// RXM-PMREQ
|
|
+static const u8 ubx_suspend_packet[] = {
|
|
+ 0xb5, 0x62, // 'ub'
|
|
+ 0x02, 0x41, // message class and id
|
|
+ 0x08, 0x00, // message length
|
|
+ 0x00, 0x00, 0x00, 0x00, // duration (0 == infinite)
|
|
+ 0x02, 0x00, 0x00, 0x00, // flags (backup)
|
|
+ 0x4d, 0x3b, // checksum
|
|
+};
|
|
+
|
|
static int ubx_set_standby(struct gnss_serial *gserial)
|
|
{
|
|
struct ubx_data *data = gnss_serial_get_drvdata(gserial);
|
|
int ret;
|
|
|
|
+#if 0
|
|
+ struct serdev_device *serdev = gserial->serdev;
|
|
+
|
|
+ // we can't know what state the device is in, so first make sure
|
|
+ // it's woken up by writing a zero byte to it and then suspend it
|
|
+ // for sure
|
|
+
|
|
+ ret = serdev_device_write(serdev, "", 1, MAX_SCHEDULE_TIMEOUT);
|
|
+ if (ret < 0)
|
|
+ return ret;
|
|
+
|
|
+ serdev_device_wait_until_sent(serdev, 0);
|
|
+
|
|
+ // wait for wakeup
|
|
+ mdelay(100);
|
|
+
|
|
+ ret = serdev_device_write(serdev, ubx_suspend_packet,
|
|
+ sizeof(ubx_suspend_packet),
|
|
+ MAX_SCHEDULE_TIMEOUT);
|
|
+ if (ret < 0 || ret < sizeof(ubx_suspend_packet))
|
|
+ return ret;
|
|
+
|
|
+ serdev_device_wait_until_sent(serdev, 0);
|
|
+#endif
|
|
+
|
|
ret = regulator_disable(data->vcc);
|
|
if (ret)
|
|
return ret;
|
|
--
|
|
Armbian
|
|
|