Skip to content

Upstream status #205

Description

@KAMiKAZOW

If I understand things correctly, a goal of this project is to eventually upstream the patches, right?
Would it be possible to document in #96 or via the Milestones feature when patches have been submitted and accepted? For example, what's the status of #41? There's no follow-up mail. Does that mean that the patch is accepted, rejected, or forgotten?

Activity

  1. archseer commented on Jun 9, 2020

    @archseer
    Member

    #41: no board files have been merged to ath10k in 2020 at all. I think @kvalo includes new files a few times per year. I was planning to bump that thread eventually.

    There's no set timeline for upstreaming surface-aggregator-module, so we can't really schedule or promise anything. 5.6 was when the last prerequisite patch landed upstream, so it's usable via dkms now on gen7 devices without a patched kernel. @qzed has been doing a massive rewrite here, once that's done we'll do a partial upstreaming and post an update. Looks like we're going to miss the current merge window for 5.8.

    @StollD has been trying to upstream prerequisites for running IPTS via dkms, but as you can see we're waiting for upstream there as well.

    The next big update is SB3 support, I was planning to post an announcement once it's merged.

    The rest of the patches are a mixed bag:

    • 0001-surface3-power.patch got upstreamed in 5.7
    • 0001-surface3-spi.patch is a workaround that probably wouldn't be accepted upstream
    • 0002-surface3-oemb.patch is a fix for Surface 3 with broken boards. Also not sure if that would be accepted.
    • 0004-surface-lte.patch we don't have enough reports about LTE to know if that patch is even necessary
    • 0005-wifi.patch is a Marvell workaround that I'd like to see someone upstream eventually.
  2. added
    A: metaArea: Project management / organisation
    C: documentationCategory: Improvements or additions to the documentation
    on Mar 1, 2021
  3. qzed commented on Mar 1, 2021

    @qzed
    Member

    Long overdue update on this now that v5.11 and v5.12-rc1 are released.

    • v5.11 includes the surface-gpe patch, meaning that Surface devices should now handle the lid state properly out of the box (again). This is required to enable some GPEs (special ACPI interrupts/events) after Linux disabled those during suspend to fix spurious wakes on other platforms.

    • v5.12-rc1 includes the core for the Surface Aggregator Module, including the Surface ACPI Notify driver. While not all of the SAM related patches have made it into v5.12-rc1 (mostly because I wasn't able to prepare them all in time), this means that on gen. 5 and 6 devices (i.e. Surface Book 2, Surface Laptops 1 and 2, Surface Pro 5 and 6) battery status and thermal events are supported. Missing are still the battery driver for gen7, the keyboard/touchpad drivers for the Surface Laptops and Surface Book 3, the DTX driver for the Surface Books, and the performance-mode/platform profile driver. I've got all of them lined up for v5.13, just waiting for upstream acceptance on some common changes (i.e. the device registry) before I can submit them.

    • v5.12-rc1 also includes the surface-hotplug driver. This means that the dGPU on Surface Books (2 and 3) should now behave properly when it's being detached while in D3cold. Note that there's still a (somewhat related) patch missing which fixes an issue with D3cold though (meaning without that patch you have to turn off, on, and off again the dGPU to actually get it into D3cold). That patch may need a bit of a bigger discussion, but I hope I can get it included in v5.13.

  4. qzed commented on Apr 26, 2021

    @qzed
    Member

    v5.12 is now out, #96 (comment) has more details on what that includes and what's expected for v5.13.

  5. qzed commented on Aug 24, 2021

    @qzed
    Member

    v5.13 has been out for a while and with that all major Surface Aggregator Module features are now upstream (there's some small debug stuff that will land in 5.14), see #96 (comment) for details.

  6. qzed commented on Aug 31, 2021

    @qzed
    Member

    v5.14 is out and with that the latest changes to the SAM driver debug interface are now also upstream.

    Things are also moving along on the mwifiex front: The first two patches have been accepted and @jonas2515 has already sent in the next batch. Note that those are not included in v5.14 yet. They might show up as fixes or at latest in v5.15, if all goes well.

  7. qzed commented on Nov 15, 2022

    @qzed
    Member

    Another long overdue update. There have been quite a few changes on all fronts:

    • We are now down to two patches for the mwifiex (Marvell WiFi), one addressing power-saving issues, and another one addressing bad performance when using Bluetooth and WiFi combined. It may be possible to address the latter with a config in user-space (hwdb?) and we're still trying to get the former upstream. Regardless, WiFi crashes should be fixed with any recent (v5.17 and newer) kernel (big thanks to @jonas2515 here).
    • All currently available x86 Surface devices with a SAM-over-SSH EC will have essential SAM support (i.e. keyboard, touchpad, and battery/charger status) with kernel v6.1. The latest devices to be upstreamed are the SL5 and SP9 (v6.1, likely also backported to v6.0). Other devices are already supported with v6.0 (Surface Laptop Go 2, Surface Pro 8), v5.16 (Surface Laptop Studio), v5.15 (Surface Laptop 4), or earlier kernels. The remaining SAM changes currently included in our patches are (apart from the SL5 and SP9 ones that are currently on their way upstream) some internal changes that I can hopefully revise and send in soon too.
    • Touch support is making steady progress but ti will likely still take quite a while until that is upstream. We are currently switching from a custom /dev/ipts device node to a /dev/hidraw interface. The idea is that we provide a unified touch interface via /dev/hidraw across all Surface devices. We chose hidraw as newer interfaces (ITHC on the latest generations, HID-over-SPI on AMD and ARM models, or even the later generations using IPTS) all provide HID-wrapped data. I believe the transition is largely complete and we'll hopefully include that in our kernels soon. After that we likely need some cleanup work before we can send this upstream.
    • I can't comment much on the cameras as I haven't followed this too closely. However, @djrscally has regularly sent his work upstream and the patches included here have slimmed down significantly.

    At some point when I have a bit more time I'll also need to go over the other patches again, however, if you don't mind cameras and touch, I think you'll have a pretty good out-of-the-box experience with a recent stock kernel on the Intel models (how recent depends on your device).

  8. locked and limited conversation to collaborators on Nov 15, 2022
  9. qzed commented on Apr 13, 2024

    @qzed
    Member

    There's some stuff that I forgot to put here, but it's generally fairly "small" things. For example, enabling Surface Aggregator Module support for newer devices, which I generally try to push upstream as soon as things are confirmed working.

    One of the bigger recent updates is fan monitoring support via the Surface Aggregator Module, developed by @iwanders. Currently, this is only enabled (and upstreamed) for the Surface Pro 9, but it likely will work on other devices, we'll just have to test this. It will likely land upstream in v6.9.

    Further patches from @iwanders enable fan profile support, also only on the SP9 for now, which will likely land upstream in v6.10.

    A third update is temperature sensors connected via the Surface Aggregator Module: Those will likely also land upstream in v6.10. Currently, also only for the SP9.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A: metaArea: Project management / organisationC: documentationCategory: Improvements or additions to the documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions