History log of /freebsd/sys/dev/ichiic/ig4_iic.c (Results 1 – 25 of 79)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 5b56413d 25-Jul-2024 Warner Losh <imp@FreeBSD.org>

newbus: globally replace device_add_child(..., -1) with DEVICE_UNIT_ANY

Sponsored by: Netflix


Revision tags: release/14.1.0
# 493715f9 20-Apr-2024 Ahmad Khalifa <ahmadkhalifa570@gmail.com>

ig4_iic: Warn on NACK

Some DSDTs define non-existent devices, warn the user when an access is attempted on one of these devices.

Reviewed by: imp, markj, Elliott Mitchell
Pull Request: https://gith

ig4_iic: Warn on NACK

Some DSDTs define non-existent devices, warn the user when an access is attempted on one of these devices.

Reviewed by: imp, markj, Elliott Mitchell
Pull Request: https://github.com/freebsd/freebsd-src/pull/1125

show more ...


Revision tags: release/13.3.0
# 13037eaa 25-Dec-2023 Alexander Motin <mav@FreeBSD.org>

ig4: Actively use FIFO thresholds

Before every wait for FIFO interrupt set how much data/space do we
want to see there. Previous code was not using it for receive, as
result aggregating interrupts

ig4: Actively use FIFO thresholds

Before every wait for FIFO interrupt set how much data/space do we
want to see there. Previous code was not using it for receive, as
result aggregating interrupts only within processing latency. The
new code needs only one interrupt per transfer per FIFO length.

On my Dell XPS 13 9310 with iichid(4) touchscreen and touchpad this
reduces the interrupt rate per device down to 2 per sample or 16-20
per second when idle and 120-160 per second when actively touched.

MFC after: 1 month

show more ...


# 9c9d7fdd 24-Dec-2023 Alexander Motin <mav@FreeBSD.org>

ig4: Fix FIFO depths detection

At least on my Tiger Lake-LP queue depth detection failed before the
ig4iic_set_config() call, resulting in no FIFO use. Moving it after
solves the problem, getting p

ig4: Fix FIFO depths detection

At least on my Tiger Lake-LP queue depth detection failed before the
ig4iic_set_config() call, resulting in no FIFO use. Moving it after
solves the problem, getting proper 64 bytes size.

On my Dell XPS 13 9310 with iichid(4) touchscreen and touchpad this
by few times reduces context switch rate in the driver, and probably
also improves the I2C bus utilization.

MFC after: 1 month

show more ...


# 5972ffde 16-Nov-2023 Andrew Gallatin <gallatin@FreeBSD.org>

ig4(4): Add an EMAG device type

Sponsored by: Ampere Computing LLC, Netflix
Submitted by: allanjude
Differential Revision: https://reviews.freebsd.org/D28746
Reviewed by: imp


Revision tags: release/14.0.0
# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# 87f55ab0 18-Apr-2023 Dimitry Andric <dim@FreeBSD.org>

ichiic: use bool for one-bit wide bit-fields

A one-bit wide bit-field can take only the values 0 and -1. Clang 16
introduced a warning that "implicit truncation from 'int' to a one-bit
wide bit-fiel

ichiic: use bool for one-bit wide bit-fields

A one-bit wide bit-field can take only the values 0 and -1. Clang 16
introduced a warning that "implicit truncation from 'int' to a one-bit
wide bit-field changes value from 1 to -1". Fix by using c99 bool.

Reported by: Clang
Reviewed by: emaste, wulf
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D39665

show more ...


Revision tags: release/13.2.0, release/12.4.0, release/13.1.0
# 4e9e71fd 09-May-2022 John Baldwin <jhb@FreeBSD.org>

ichiic: Remove unused devclass arguments to DRIVER_MODULE.


# 676ea8e1 20-Apr-2022 John Baldwin <jhb@FreeBSD.org>

Remove unused iicbus_devclass.


Revision tags: release/12.3.0, release/13.0.0
# bbacb7ce 23-Feb-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

ig4: Add PCI IDs for Intel Gemini Lake I2C controller.

Submitted by: Dmitry Luhtionov
MFC after: 2 weeks


# 37ef8d4c 18-Feb-2021 Allan Jude <allanjude@FreeBSD.org>

ig4(4): Increase timeout to about 1 second

Per the i2c spec, a slave device can stretch SCL idefinitely, so 25ms is
a bit arbitrary in general. smbus does specify an optional timeout
recovery mechan

ig4(4): Increase timeout to about 1 second

Per the i2c spec, a slave device can stretch SCL idefinitely, so 25ms is
a bit arbitrary in general. smbus does specify an optional timeout
recovery mechanism to be done at about 25~35ms, but the IPMI SSIF spec
says that BMCs don't have any obligation to implement that.
The BMC on Altra seems to mostly respond within 25ms, but occasionally
will stretch SCL for ~300 msec.

Also, the count_us mechanism seems to actually timeout around 25%
earlier than it would claim (timeout really happening around 19ms
instead of 25ms).

Sponsored by: Ampere Computing LLC
Submitted by: Klara Inc.
Reviewed by: manu, imp
Differential Revision: https://reviews.freebsd.org/D28747

show more ...


# 6c6fd2b4 05-Dec-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

ig4(4): Add PCI IDs for Intel Tiger Lake

Submitted by: Neel Chauhan <neel AT neelc DOT org>
Differential Revision: https://reviews.freebsd.org/D27483


Revision tags: release/12.2.0, release/11.4.0
# 16b90565 10-Mar-2020 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r358731 through r358831.


# 9b7938dc 09-Mar-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

iicbus(4): Add support for ACPI-based children enumeration

When iicbus is attached as child of Designware I2C controller it scans all
ACPI nodes for "I2C Serial Bus Connection Resource Descriptor" d

iicbus(4): Add support for ACPI-based children enumeration

When iicbus is attached as child of Designware I2C controller it scans all
ACPI nodes for "I2C Serial Bus Connection Resource Descriptor" described
in section 19.6.57 of ACPI specs.
If such a descriptor is found, I2C child is added to iicbus, it's I2C
address, IRQ resource and ACPI handle are added to ivars. Existing
ACPI bus-hosted child is deleted afterwards.

The driver also installs so called "I2C address space handler" which is
disabled by default as nontested.
Set hw.iicbus.enable_acpi_space_handler loader tunable to 1 to enable it.

Reviewed by: markj
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D22901

show more ...


# 69fac7c3 04-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] Try to workaround MIPS namespace pollution issue


# 371d37d8 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] Convert ithread interrupt handler to filter based one.


# 81e81838 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] Add support for CannonLake controllers

They are clocked at 216MHz rate, much higher than previous models.

PR: 240485
Submitted by: Neel Chauhan <neel@neelc.org>


# bff27555 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] Minor improvement of write pipelining

With leaving some data queued in the TX FIFO at the end of write cycle.


# 0eb21d1b 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] wait for bus stop condition after stop command issued

It gives better error detection and ig4 driver's lock coverage
in a pipelined write case


# ae73652c 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] On SkyLake controllers issue reset on attach unconditionally.

It is very helpful during debugging of I2C issues.
It is done only for SkyLakes due to lack of testing on other hardware.


# 847f557c 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] Set STOP condition and flush TX/RX FIFOs on error

if controller has not it done for us yet.

Reset controller when transfer abort is failed.


# e3a56ba2 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] Improve error detection

Handle error bits of INTR_STAT and TX_ABORT registers.

Move interrupt clearing from interrupt handler to polling loop to get
common execution path with polled mode.

D

[ig4] Improve error detection

Handle error bits of INTR_STAT and TX_ABORT registers.

Move interrupt clearing from interrupt handler to polling loop to get
common execution path with polled mode.

Do not clear interrupts with reading of IG4_REG_CLR_INTR register as
interrupts, triggered during the period from reg_read(IG4_REG_INTR_STAT)
to reg_read(IG4_REG_CLR_INTR) will be missed.
Instead, read each IG4_REG_CLR_* register separately.

show more ...


# b0eb9d3e 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] Convert polling loop from status-based to interrupt-based

INTR_STAT register exposes more useful informaton then STA register does
e.g. it exposes error and I2C bus STOP conditions. Make it a

[ig4] Convert polling loop from status-based to interrupt-based

INTR_STAT register exposes more useful informaton then STA register does
e.g. it exposes error and I2C bus STOP conditions. Make it a main source
of I2C transfer state.

show more ...


# 7f6aee64 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] Use interrupts for waiting for empty TX FIFO


# 7814f978 03-Nov-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

[ig4] Convert last remaining usage of TX_NOTFULL status to TX_EMPTY

in ig4iic_read routine. It makes possible interrupt utilization while
waiting for empty space in TX FIFO.


1234