Re: acpi issues on FreeBSD-current_r350103 on Thinkpad A485

From: Rozhuk Ivan <rozhuk.im_at_gmail.com>
Date: Mon, 29 Jul 2019 12:41:36 +0300
On Sat, 20 Jul 2019 00:54:47 +0200
Evilham <contact_at_evilham.com> wrote:


> Minor glitches:
> - xbacklight doesn't work, neither does intel-backlight because 
>   it's AMD
> - Speakers don't appear to work, audio input/output on 3.5 jack 
>   does.
> - SD card reader doesn't work (Bounty for 125 USD: 
>   https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204521)

I have Asus 505 and backlight not work too (try via xfce4-power-manager).

I dig into it and found that problem somewhere in ACPI code.

1. It does not proper export some functions and FreeBSD
ACPI + xfce4-power-manager cant detect support this feature.
I hack kernel:
Index: /usr/src/sys/dev/acpica/acpi_video.c
===================================================================
--- /usr/src/sys/dev/acpica/acpi_video.c	(revision 350398)
+++ /usr/src/sys/dev/acpica/acpi_video.c	(working copy)
_at__at_ -1053,8 +1053,12 _at__at_
 	dcs = 0;
 	status = acpi_GetInteger(handle, "_DCS", &dcs);
 	if (ACPI_FAILURE(status))
-		printf("can't evaluate %s._DCS - %s\n",
-		       acpi_name(handle), AcpiFormatException(status));
+		status = acpi_GetInteger(handle, "_STA", &dcs);
+	if (ACPI_FAILURE(status)) {
+		/* Assume that device OK by default. */
+		dcs = (DCS_EXISTS | DCS_ACTIVE | DCS_READY |
+		    DCS_FUNCTIONAL | DCS_ATTACHED);
+	}
 
 	return (dcs);
 }
and now acpi/xfce4-power-manager show that feature supported but
it does not work.
(later I can move this hack into ACPI ASL code that load into bios, but it harder to maintain)

2. I dig more depper and decompile acpi code via isl.
There is a mess.
I found that function that set backlight level check some mem/register
value before write new backlight value.
I fail to found place where this value changed.
I try rewrite code to remove this check and recompile ACPI and load new
version witout this check on FreeBSD boot, it loaded but backlight still
not work.

Also I set in loader.conf:
hw.acpi.osname="Windows 2015"	# Some systems' ASL may have problems because they look for names of Microsoft operating systems.
because there is at least 4 different places in decompiled ACPI
where OS version and name checked - not help with blackligth, but as I see
this unblock some features/devices.


Also i2c touchpad dont work.
https://reviews.freebsd.org/D16698
not help.


For speakers probably wrong snddev set.
Try change hw.snd.default_unit.


> WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
> /wrkdirs/usr/ports/graphics/drm-fbsd12.0-kmod/work/kms-drm-6365030/drivers/gpu/drm/drm_atomic_helper.c:821
> [Multiple times...]
> kernel trap 22 with interrupts disabled
>                             kernel trap 22 with interrupts 
>                             disabled
> kernel trap 22 with interrupts disabled
> kernel trap 22 with interrupts disabled
>     panic: spin lock held too long

I have another issue with amdgpu:
after lid closed and open again video freezes to few seconds every 10 seconds.
Switch to scfb xorg driver to fix it, but get small tearing on video playback.
Received on Mon Jul 29 2019 - 07:41:44 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:21 UTC