FreeBSD Bugzilla – Attachment 194370 Details for
Bug 229120
acpi_ibm: Add support for newer Thinkpad models with id LEN0268
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Support newer thinkpads with LEN0268 id
support-newer-thinkpads-with-LEN0268-id.patch (text/plain), 2.58 KB, created by
Ali Abdallah
on 2018-06-18 18:16:19 UTC
(
hide
)
Description:
Support newer thinkpads with LEN0268 id
Filename:
MIME Type:
Creator:
Ali Abdallah
Created:
2018-06-18 18:16:19 UTC
Size:
2.58 KB
patch
obsolete
>--- acpi_ibm.c.orig 2018-06-18 20:05:09.510966000 +0200 >+++ acpi_ibm.c 2018-06-18 20:02:43.835109000 +0200 >@@ -349,7 +349,7 @@ > DRIVER_MODULE(acpi_ibm, acpi, acpi_ibm_driver, acpi_ibm_devclass, > 0, 0); > MODULE_DEPEND(acpi_ibm, acpi, 1, 1, 1); >-static char *ibm_ids[] = {"IBM0068", "LEN0068", NULL}; >+static char *ibm_ids[] = {"IBM0068", "LEN0068", "LEN0268", NULL}; > > static void > ibm_led(void *softc, int onoff) >@@ -425,9 +425,14 @@ > acpi_ibm_attach(device_t dev) > { > int i; >+ int hkey; > struct acpi_ibm_softc *sc; > char *maker, *product; >- devclass_t ec_devclass; >+ ACPI_OBJECT_LIST input; >+ ACPI_OBJECT params[1]; >+ ACPI_OBJECT out_obj; >+ ACPI_BUFFER result; >+ devclass_t ec_devclass; > > ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__); > >@@ -456,21 +461,54 @@ > sc->events_mask_supported = ACPI_SUCCESS(acpi_GetInteger(sc->handle, > IBM_NAME_EVENTS_MASK_GET, &sc->events_initialmask)); > >+ if (ACPI_SUCCESS (acpi_GetInteger(sc->handle, "MHKV", &hkey))) >+ { >+ device_printf(dev, "Firmware version key 0x%X\n", hkey); >+ } >+ else >+ { >+ device_printf(dev, "Failed to get firmware version key\n"); >+ return (EINVAL); >+ } >+ > if (sc->events_mask_supported) { > SYSCTL_ADD_UINT(sc->sysctl_ctx, > SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, > "initialmask", CTLFLAG_RD, > &sc->events_initialmask, 0, "Initial eventmask"); > >- /* The availmask is the bitmask of supported events */ >- if (ACPI_FAILURE(acpi_GetInteger(sc->handle, >- IBM_NAME_EVENTS_AVAILMASK, &sc->events_availmask))) >- sc->events_availmask = 0xffffffff; >+ switch(hkey >> 8) >+ { >+ case 1: >+ /* The availmask is the bitmask of supported events */ >+ if (ACPI_FAILURE(acpi_GetInteger(sc->handle, >+ IBM_NAME_EVENTS_AVAILMASK, &sc->events_availmask))) >+ sc->events_availmask = 0xffffffff; > >+ break; >+ >+ case 2: >+ result.Length = sizeof(out_obj); >+ result.Pointer = &out_obj; >+ params[0].Type = ACPI_TYPE_INTEGER; >+ params[0].Integer.Value = 1; >+ input.Pointer = params; >+ input.Count = 1; >+ >+ sc->events_availmask = 0xffffffff; >+ >+ if (ACPI_SUCCESS(AcpiEvaluateObject (sc->handle, >+ IBM_NAME_EVENTS_AVAILMASK, &input, &result))) >+ sc->events_availmask = out_obj.Integer.Value; >+ break; >+ >+ default: >+ break; >+ } > SYSCTL_ADD_UINT(sc->sysctl_ctx, >- SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, >- "availmask", CTLFLAG_RD, >- &sc->events_availmask, 0, "Mask of supported events"); >+ SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, >+ "availmask", CTLFLAG_RD, >+ &sc->events_availmask, 0, "Mask of supported events"); > } > > /* Hook up proc nodes */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 229120
: 194370