<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/platform/x86/Makefile, branch linux-5.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-07-09T19:47:27Z</updated>
<entry>
<title>platform/x86: Add new intel_atomisp2_led driver</title>
<updated>2020-07-09T19:47:27Z</updated>
<author>
<name>Hans de Goede</name>
</author>
<published>2020-06-20T12:37:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b2d688fed57bbe8ea9bd90c069d7e2dc43b137c'/>
<id>urn:sha1:4b2d688fed57bbe8ea9bd90c069d7e2dc43b137c</id>
<content type='text'>
Many Bay Trail and Cherry Trail devices come with a camera attached to
Intel's Image Signal Processor. Linux currently does not have a driver for
these, so they do not work as a camera.

Some of these camera's have a status LED which is controlled through a GPIO
in some cases, e.g. on the Asus T100TA and Asus T200TA, there is a firmware
issue where the LED gets turned on at boot.

This commit adds a Linux LED driver for the camera LED on these devices.
This driver will turn the LED off at boot and also allows controlling the
LED (so the user can repurpose it) through the sysfs LED interface.

Which GPIO is attached to the LED is usually not described in the ACPI
tables, so this driver contains per-system info about the GPIO inside the
driver. This means that this driver only works on systems the driver knows
about.

Signed-off-by: Hans de Goede &lt;hdegoede@redhat.com&gt;
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>platform/x86: Add Slim Bootloader firmware update signaling driver</title>
<updated>2020-05-05T17:27:44Z</updated>
<author>
<name>Jithu Joseph</name>
</author>
<published>2020-04-27T23:15:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2d30fcdd439f766fa984df3854fd57c3c5daba7e'/>
<id>urn:sha1:2d30fcdd439f766fa984df3854fd57c3c5daba7e</id>
<content type='text'>
Slim Bootloader(SBL) is a small open-source boot firmware,
designed for running on certain Intel platforms. SBL can be
thought-of as fulfilling the role of a minimal BIOS
implementation, i.e initializing the hardware and booting
Operating System.

Since SBL is not UEFI compliant, firmware update cannot be triggered
using standard UEFI runtime services. Further considering performance
impact, SBL doesn't look for a firmware update image on every reset
and does so only when firmware update signal is asserted.

SBL exposes an ACPI-WMI device which comes up in sysfs as
/sys/bus/wmi/44FADEB1xxx and this driver adds a
"firmware_update_request" device attribute. This attribute normally
has a value of 0 and userspace can signal SBL to update firmware,
on next reboot, by writing a value of 1 like:

echo 1 &gt; /sys/bus/wmi/devices/44FADEB1xxx/firmware_update_request

This driver only implements a signaling mechanism, the actual firmware
update process and various details like firmware update image format,
firmware image location etc are defined by SBL and are not in the
scope of this driver.

DocLink: https://slimbootloader.github.io/security/firmware-update.html
Signed-off-by: Jithu Joseph &lt;jithu.joseph@intel.com&gt;
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>platform/x86: Add Elkhart Lake SCU/PMC support</title>
<updated>2020-05-05T17:26:16Z</updated>
<author>
<name>Mika Westerberg</name>
</author>
<published>2020-04-28T08:51:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7a61f05e94c36a6970bd475306864ee0f698f3e9'/>
<id>urn:sha1:7a61f05e94c36a6970bd475306864ee0f698f3e9</id>
<content type='text'>
Intel Elkhart Lake exposes SCU/PMC as an ACPI device that only supports
IPC functionality so add a platform driver supporting it. Interrupt is
optional so we let intel_scu_ipc_probe() to decide based on the passed
platform data whether it uses interrupt or polling.

Co-developed-by: Divya Sasidharan &lt;divya.s.sasidharan@intel.com&gt;
Signed-off-by: Divya Sasidharan &lt;divya.s.sasidharan@intel.com&gt;
Co-developed-by: Rajmohan Mani &lt;rajmohan.mani@intel.com&gt;
Signed-off-by: Rajmohan Mani &lt;rajmohan.mani@intel.com&gt;
Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>platform/x86: intel_pmc_ipc: Convert to MFD</title>
<updated>2020-04-24T10:18:44Z</updated>
<author>
<name>Mika Westerberg</name>
</author>
<published>2020-04-16T08:15:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=25f1ca31e230598eaf3c38d387a355a64bd772a7'/>
<id>urn:sha1:25f1ca31e230598eaf3c38d387a355a64bd772a7</id>
<content type='text'>
This driver only creates a bunch of platform devices sharing resources
belonging to the PMC device. This is pretty much what MFD subsystem is
for so move the driver there, renaming it to intel_pmc_bxt.c which
should be more clear what it is.

MFD subsystem provides nice helper APIs for subdevice creation so
convert the driver to use those. Unfortunately the ACPI device includes
separate resources for most of the subdevices so we cannot simply call
mfd_add_devices() to create all of them but instead we need to call it
separately for each device.

The new MFD driver continues to expose two sysfs attributes that allow
userspace to send IPC commands to the PMC/SCU to avoid breaking any
existing applications that may use these. Generally this is bad idea so
document this in the ABI documentation.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Reviewed-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Signed-off-by: Lee Jones &lt;lee.jones@linaro.org&gt;
</content>
</entry>
<entry>
<title>platform/x86: intel_scu_ipc: Split out SCU IPC functionality from the SCU driver</title>
<updated>2020-04-24T10:17:05Z</updated>
<author>
<name>Mika Westerberg</name>
</author>
<published>2020-04-16T08:15:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=54b34aa0a7295c0fc82c72c15bf42c05ad720d5f'/>
<id>urn:sha1:54b34aa0a7295c0fc82c72c15bf42c05ad720d5f</id>
<content type='text'>
The SCU IPC functionality is usable outside of Intel MID devices. For
example modern Intel CPUs include the same thing but now it is called
PMC (Power Management Controller) instead of SCU. To make the IPC
available for those split the driver into core part (intel_scu_ipc.c)
and the SCU PCI driver part (intel_scu_pcidrv.c) which then calls the
former before it goes and creates rest of the SCU devices. The SCU IPC
will also register a new class that gets assigned to the device that is
created under the parent PCI device.

We also split the Kconfig symbols so that INTEL_SCU_IPC enables the SCU
IPC library and INTEL_SCU_PCI the SCU driver and convert the users
accordingly. While there remove default y from the INTEL_SCU_PCI symbol
as it is already selected by X86_INTEL_MID.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Reviewed-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Signed-off-by: Lee Jones &lt;lee.jones@linaro.org&gt;
</content>
</entry>
<entry>
<title>platform/x86: surface3_power: MSHW0011 rev-eng implementation</title>
<updated>2020-03-26T12:09:09Z</updated>
<author>
<name>Blaž Hrastnik</name>
</author>
<published>2020-03-21T15:22:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b1f81b496b0d14382a9cf160cc4dbdefb233f936'/>
<id>urn:sha1:b1f81b496b0d14382a9cf160cc4dbdefb233f936</id>
<content type='text'>
Patch was rebased on top of for-next. Thanks for your patience!

Blaž

I'm resubmitting this patch with review feedback addressed:

https://patchwork.kernel.org/patch/10584079/

The patch was previously not resubmitted because it required a change
that was reverted in the ACPICA. That has since been corrected:

https://github.com/acpica/acpica/commit/9159c09a2a5897a43f78c95cdffc160d399722c3

We've been using this patch for a while and user reports confirm that it
works:

https://github.com/linux-surface/linux-surface

Previous description follows.

&gt;8------------------------------------------------------8&lt;

The MSHW0011 device is a chip that replaces the battery firmware
by using ACPI operation regions on the Surface 3.
It is unclear whether or not the chip will be reused somewhere else
(under Windows, the chip is called "Surface Platform Power Driver"
and the driver is provided by Microsoft).

The values have been obtained by reverse engineering, and are subject to
errors. Looks like it works on overall pretty well.

I couldn't manage to get the IRQ correctly triggered, so I am using a
good old polling thread to check for changes. This is something
to be fixed in a later version.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=106231

Signed-off-by: Blaž Hrastnik &lt;blaz@mxxn.io&gt;
Signed-off-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Signed-off-by: Stephen Just &lt;stephenjust@gmail.com&gt;
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>platform/x86: Makefile: Group modules by companies and functions</title>
<updated>2020-02-10T15:47:37Z</updated>
<author>
<name>Andy Shevchenko</name>
</author>
<published>2020-01-28T18:33:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d82d3ef66d91e288b54c2bf5cbba9ec0c106ff50'/>
<id>urn:sha1:d82d3ef66d91e288b54c2bf5cbba9ec0c106ff50</id>
<content type='text'>
For better maintenance group modules by companies and functions.
No functional change intended.

Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>platform/x86: Add support for Uncore frequency control</title>
<updated>2020-01-13T19:02:36Z</updated>
<author>
<name>Srinivas Pandruvada</name>
</author>
<published>2020-01-13T18:00:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=49a474c7ba51ce999803c269adbad778495589af'/>
<id>urn:sha1:49a474c7ba51ce999803c269adbad778495589af</id>
<content type='text'>
Some server users set limits on the uncore frequency using MSR 620H, while
running latency sensitive workloads. Here uncore frequency controls
RING/LLC(last-level cache) clocks.

But MSR control is not always possible from the user space, so this driver
provides a sysfs interface to set max and min frequency limits. This MSR
620H is a die scoped in multi-die system or package scoped in non multi-die
systems.

When this driver is loaded, a new directory is created under
 /sys/devices/system/cpu.

For example on a two package Skylake server:
$cd /sys/devices/system/cpu/intel_uncore_frequency

$ls
package_00_die_00 package_01_die_00

$ls package_00_die_00
max_freq_khz  min_freq_khz  initial_max_freq_khz
initial_min_freq_khz

$grep . *
    max_freq_khz:2400000
    min_freq_khz:1200000
    initial_max_freq_khz:2400000
    initial_min_freq_khz:1200000

Here, initial_max_freq_khz and initial_min_freq_khz are read only
attributes to show power up or initial values of max and min frequencies
respectively. Other attributes are read-write, so that users can modify.

Signed-off-by: Srinivas Pandruvada &lt;srinivas.pandruvada@linux.intel.com&gt;
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>platform/x86: Add System76 ACPI driver</title>
<updated>2019-10-15T07:55:11Z</updated>
<author>
<name>Jeremy Soller</name>
</author>
<published>2019-10-10T01:59:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd13c8622a5ad4f7317b64de4f6aa2de1962220e'/>
<id>urn:sha1:fd13c8622a5ad4f7317b64de4f6aa2de1962220e</id>
<content type='text'>
Add System76 ACPI driver, which adds support for Fn-Fx key
combinations, keyboard backlight, and airplane mode LEDs
on System76 laptops running open source firmware.

Signed-off-by: Jeremy Soller &lt;jeremy@system76.com&gt;
Cc: platform-driver-x86@vger.kernel.org
Cc: Andy Shevchenko &lt;andy.shevchenko@gmail.com&gt;
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>platform/x86: intel_cht_int33fe: Split code to Micro-B and Type-C</title>
<updated>2019-10-15T07:55:10Z</updated>
<author>
<name>Yauhen Kharuzhy</name>
</author>
<published>2019-10-05T20:42:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d740795d9273dafb02ed809f3b68d62388bc08d9'/>
<id>urn:sha1:d740795d9273dafb02ed809f3b68d62388bc08d9</id>
<content type='text'>
Existing intel_cht_int33fe ACPI pseudo-device driver assumes that
hardware has Type-C connector and register related devices described as
I2C connections in the _CRS resource.

There is at least one hardware (Lenovo Yoga Book YB1-91L/F) with Micro-B
USB connector exists. It has INT33FE device in the DSDT table but
there are only two I2C connection described: PMIC and BQ27452 battery
fuel gauge.

Splitting existing INT33FE driver allow to maintain code for USB Micro-B
(or AB) connector variant separately and make it simpler.

Split driver to intel_cht_int33fe_common.c and
intel_cht_int33fe_{microb,typec}.c. Compile all this sources to one .ko
module to make user experience easier.

Signed-off-by: Yauhen Kharuzhy &lt;jekhor@gmail.com&gt;
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
</content>
</entry>
</feed>
