Page MenuHomeFreeBSD

D28746.diff
No OneTemporary

D28746.diff

diff --git a/sys/dev/ichiic/ig4_acpi.c b/sys/dev/ichiic/ig4_acpi.c
--- a/sys/dev/ichiic/ig4_acpi.c
+++ b/sys/dev/ichiic/ig4_acpi.c
@@ -83,13 +83,21 @@
ig4iic_acpi_attach(device_t dev)
{
ig4iic_softc_t *sc;
+ char *str;
int error;
sc = device_get_softc(dev);
sc->dev = dev;
- /* All the HIDs matched are Atom SOCs. */
- sc->version = IG4_ATOM;
+ error = ACPI_ID_PROBE(device_get_parent(dev), dev, ig4iic_ids, &str);
+ if (error > 0)
+ return (error);
+ if (strcmp(str, "APMC0D0F") == 0) {
+ sc->version = IG4_EMAG;
+ } else {
+ /* All the other HIDs matched are Atom SOCs. */
+ sc->version = IG4_ATOM;
+ }
sc->regs_rid = 0;
sc->regs_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
&sc->regs_rid, RF_ACTIVE);
diff --git a/sys/dev/ichiic/ig4_iic.c b/sys/dev/ichiic/ig4_iic.c
--- a/sys/dev/ichiic/ig4_iic.c
+++ b/sys/dev/ichiic/ig4_iic.c
@@ -89,6 +89,9 @@
* Ig4 hardware parameters except Haswell are taken from intel_lpss driver
*/
static const struct ig4_hw ig4iic_hw[] = {
+ [IG4_EMAG] = {
+ .ic_clock_rate = 100, /* MHz */
+ },
[IG4_HASWELL] = {
.ic_clock_rate = 100, /* MHz */
.sda_hold_time = 90, /* nsec */
diff --git a/sys/dev/ichiic/ig4_var.h b/sys/dev/ichiic/ig4_var.h
--- a/sys/dev/ichiic/ig4_var.h
+++ b/sys/dev/ichiic/ig4_var.h
@@ -42,6 +42,7 @@
#include "iicbus_if.h"
enum ig4_vers {
+ IG4_EMAG,
IG4_HASWELL,
IG4_ATOM,
IG4_SKYLAKE,

File Metadata

Mime Type
text/plain
Expires
Fri, Jan 23, 11:38 AM (8 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27882621
Default Alt Text
D28746.diff (1 KB)

Event Timeline