Age | Commit message (Collapse) | Author |
|
send a single reset during attach. We have discovered that some
devices such as the built-in keyboard on the Thinkpad T14s Gen 6
don't like getting more than one reset sent or they become
unresponsive.
This has been in snaps for a while and hasn't caused any major
regressions so we are confident the extra reset is not needed on
most hardware.
feedback from kettenis@
ok deraadt@ mlarkin@
|
|
|
|
Input and ok jmc@, jsg@
|
|
the MXT_T7_POWER_MODE_DEEP_SLEEP operation.
|
|
realistic option is to panic if we're doing smallish allocations and run
out of memory.
ok deraadt@
|
|
don't forward reports to the child drivers instead. This fixes an issue
with hardware that sends an interrupt in response to a reset request when
a level-triggered interrupt is used. In that case the interrupt would
just keep triggering when we issue a reset when we resume (when sc_dying
is set) since we didn't clear the interrupt condition by reading from the
device.
ok mlarkin@, deraadt@
|
|
tested by phessler, input from kettenis
|
|
|
|
|
|
|
|
ok mpi@
|
|
ikbd(4) attaches and becomes the console keyboard. We would power down
the device but never power it on again when userland opened ikbd(4) as
an input device since that is only done on the first open. The result
was a non-functioning keyboard if the hardware actually implemented the
power down command. A lot of hardware actually doesn't (which is why
this wasn't noticed for some time) but the ASUS X205T does.
ok miod@
|
|
remove duplicate prefixes on unsuccessful attachment, wrap at 80,
other minor nits
|
|
From Vladimir Serbinenko
|
|
ok miod@ millert@
|
|
ok anton@ patrick@
|
|
|
|
|
|
status information.
ok deraadt@
|
|
sparc64 because OpenFirmware doesn't support the <vendor>,<part> compatible
pattern. We don't expect this chip to turn up on sparc64.
Suggested and ok kettenis@
|
|
From Michal Mynar -- Thanks!
ok deraadt@
|
|
These all get a quality of 1000 since these are supposed to be battery
backed and almost certainly what the hardware designers want us to use.
ok mglocker@, jsg@
|
|
to assign a quality to RTC implementation and pick the "best" RTC if a
system has multiple RTCs (or multiple interfaces to an RTC). This allows
us to prefer a battery-backed I2C RTC over an RTC that is part of the SoC
which is only running of the SoC is powered. It also allows us to
work around issues with firmware RTC interfaces that may lie to us or
even crash the system.
This change makes sure the todr_quality member of the struct is always
initialized. In most cases the quality will be set to zero; further
adjustments of the quality for specific subsystems/architectures will follow.
ok cheloha@, patrick@
|
|
ok miod@
|
|
ok jcs@
|
|
now.
|
|
ok miod@
|
|
|
|
When using device trees, the ia_name field of struct i2c_attach_args
points to the first string of the device node's "compatible" array.
However, in many cases it would be preferable to use the last, most
general "compatible" entry as a device matching criterion.
Enable more flexible device matching by permitting ia_name to point to
the raw "compatible" data which is a concatenation of NUL-terminated
strings. I2C bus code will supply the data and set ia_name and
ia_namelen. I2C device drivers will use iic_is_compatible() to check
matches. This method is also backwards compatible with the old, direct
use of ia_name.
Prompted by a related patch from kettenis@.
OK kettenis@
|
|
feedback and ok tb@ jmc@ ok ratchov@
|
|
ok patrick@
|
|
ok patrick@
|
|
shows gains up to 50%) by skipping attach of irrelevant devices, which are
tagged CD_SKIPHIBERNATE in the per-driver cfdriver. In particular, usb devices
are not attached, so they don't need to detach during the suspend-unpack-resume.
New bootblocks are required (which tell the kernel it's job is unhibernate
before configure runs)
tested by various
|
|
already account for the two-byte length and one-byte report id,
rather than adding them ourself and requesting wMaxInputLength + 3.
Fixes dwiic timeouts requesting data from at least one touchpad.
Tested by various
|
|
ok deraadt@
|
|
from miod@
|
|
Claim to be a touchpad instead, which sets up ims devices in X11 to
be more like touchpads.
ok mglocker
|
|
ok kurt@
|
|
always matched on an FDT-capable device, but the HoneyComb LX2K seems
to have a PCA9547 and provides it as NXP0002 HID. This means we know
if it's ACPI or FDT based on the name passed. This is required to be
able to make two acpitz(4) nodes work, since the thermel sensors are
behind the mux.
ok kettenis@
|
|
the PCA954[68], this is a mux instead of a switch and can only have
one active channel at a time. On the bright side, we treat switches
like a mux, so only the bits have to be set a little bit differently.
ok kettenis@
|
|
square wave frequency control bits in the Day Of Week register.
To make sure we don't fudge with those bits, only reset those that
hold the day and keep the rest as is.
ok kettenis@
|
|
platforms than just loongson. Rename it to mfokrtc(4) for consistency with
other RTC drivers. Make it match on st,m41t83, since that was the chip for
which the driver was written for. More compatible strings can be added for
each chip of the series verified to behave the same.
Discussed with kettenis@
Compile tested on loongson by kn@
Tested on loongson by and ok visa@
|
|
PCA9548, this variant supports only 4 instead of 8 channels.
ok kettenis@
|
|
which we each treat as an I2C bus. While scanning these, we need to
use each channel's node as starting point instead of the pcamux(4) node.
This fixes finding and attaching devices connected to these channels.
ok kettenis@
|
|
OK deraadt@, mpi@
|
|
also a trackstick or separate physical buttons, imt was claiming all
report ids of the ihidev device preventing the trackstick/buttons
from attaching as a separate ims device on other report ids.
Just claim the report ids that imt needs and let ims attach to
others it may find.
Fixes two Dell Latitude laptops and tested in snaps for a bit.
|
|
ok patrick@
|
|
|
|
enable the trickle charger.
|
|
being too clever trying to use the SMBus block reads/writes. Instead
the registers were written with an offset: Seconds were stored in the
minutes, minutes were stored in the hours. No wonder time was ticking
so slowly. Removing the bogus length field and simply writing/reading
the time register values is enough.
ok kettenis@
|