-
Notifications
You must be signed in to change notification settings - Fork 4
Promotion to 1.0.2 #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
qcom-service-bot
wants to merge
64
commits into
debian/qcom-next
Choose a base branch
from
debian/pr/1.0.2-1
base: debian/qcom-next
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Files under Git control should not be using CR-LF for EOL. Converting to native EOL symbols is handled by the git itself. Remove extra CR-LF terminators from several files that I missed in the commit 0b7e39f ("src, inc: fix CRLF file endings") Fixes: 0b7e39f ("src, inc: fix CRLF file endings") Signed-off-by: Dmitry Baryshkov <[email protected]>
Cleand up unused DSP HAL code that was specific to Android and not used in current implementation. Signed-off-by: Jianping Li <[email protected]>
Files under Git control should not be using CR-LF for EOL. Converting to native EOL symbols is handled by the git itself. Remove extra CR-LF terminators from several files that I missed in the commit 0b7e39f ("src, inc: fix CRLF file endings")
Currently, rpcmem-allocated buffers used in remote calls are not recognized by the RPC kernel driver, resulting in fallback to copy buffers for message passing. This fallback introduces significant performance degradation, which worsens with increasing buffer sizes. This commit ensures that rpcmem-allocated buffers are properly registered with the fastrpc memory framework upon allocation and deregistered upon release. By enabling the kernel driver to identify the associated file descriptors, it avoids the use of copy buffers during remote invocation, thereby improving performance and efficiency. Signed-off-by: Abhinav Parihar <[email protected]>
This PR addresses Issue #215 by removing the unused DSP HAL implementation. The HAL code was Android-specific and not utilized in the current DSP setup. Cleaning it up helps reduce maintenance overhead and improves code clarity. - Verified build passes without HAL dependencies - No functional impact expected Please review and let me know if any additional cleanup is needed.
…rk (#216) Currently, rpcmem-allocated buffers used in remote calls are not recognized by the RPC kernel driver, resulting in fallback to copy buffers for message passing. This fallback introduces significant performance degradation, which worsens with increasing buffer sizes. This commit ensures that rpcmem-allocated buffers are properly registered with the fastrpc memory framework upon allocation and deregistered upon release. By enabling the kernel driver to identify the associated file descriptors, it avoids the use of copy buffers during remote invocation, thereby improving performance and efficiency.
Refactor DSP RPC daemons: unify adsprpcd, cdsprpcd, and sdsprpcd into a single source file This change consolidates the daemon implementations into dsprpcd.c to reduce code duplication and simplify future maintenance. Also unified the restart time handling across all daemons to ensure consistent behavior. HIDL support is removed, as it was Android-specific and not utilized in the current DSP setup. Signed-off-by: Jianping Li <[email protected]>
Have a single dsprpcd.c source file and compile all daemons(adsprpcd, cdsprpcd, sdsprpcd) using that.
This commit introduces a foundational CI pipeline for FastRPC, enabling automated sync, build, and test processes using Docker and AWS infrastructure. Key changes: - Added `aws_s3_helper` composite action to support single/multi-upload and download modes, generate presigned URLs, and manage artifact uploads to S3 - Implemented `build_docker_image` composite action to clone and build the FastRPC Docker image - Created `build` workflow using AWS runner to compile kernel artifacts, package outputs (Image, ramdisk, dtb, modules), and upload to S3 - Developed `build_workspace` composite action to prepare DLKM packaging and integrate with systemd-boot - Added `test_action` composite action to parse artifact URLs, update metadata, inject links into cloudData, and generate LAVA job definitions - Established `test` workflow to trigger LAVA jobs and collect results using the generated job definition This pipeline ensures consistent pre-merge validation and artifact handling for FastRPC development. Signed-off-by: Tharun Kumar Merugu <[email protected]>
Includes the following components: **aws_s3_helper (composite action):** - Supports three modes: single-upload, multi-upload, and download - Uploads files to S3 with dynamic paths based on GitHub context - Generates pre-signed URLs for uploaded files - Outputs a single URL or a JSON file of URLs depending on mode - Uploads presigned_urls.json as an artifact in multi-upload mode **build_docker_image (composite action):** - Clone fastrpc-image repository - Build the docker image using fastrpc-image Dockerfile **build (workflow):** - Uses an AWS runner to build kernel artifacts - Uses pull_docker_image to get docker image - Builds the kernel using a reusable build action - Packages and lists key artifacts (ramdisk, Image, vmlinux, dtb, modules) - Uploads artifacts to S3 using aws_s3_helper - Cleans up workspace and appends a build summary **build_workspace (composite action):** - Downloads required dependencies (ramdisk, systemd-boot) - Builds the kernel using Docker and outputs modules - Packages DLKM into the downloaded ramdisk **test_action (composite action):** - Parses presigned_urls.json to extract artifact URLs - Updates metadata.json and cloudData.json using Docker + jq - Uploads updated metadata to S3 and injects its URL into cloudData - Adds firmware and ramdisk URLs via pre-signed S3 links - Generates a LAVA job definition using a Python script, qualcomm_linux/job_render repository **test (workflow):** - Uses build_docker_image to build docker image - Download artifact URLs list generated by build workflow - Triggers the LAVA job using job definition - Gets the LAVA job results This commit establishes a basic docker-based CI pipeline for FastRPC builds and automated artifact handling via AWS S3
FastRPC library supports 5 domains. There are some products where new domains, GPDSP0 and GPDSP1, are supported. Add changes to support GPDSP domains. Signed-off-by: Ling Xu <[email protected]>
…#233) - Ensures CI uses latest logic from development branch Signed-off-by: Tharun Kumar Merugu <[email protected]>
Fix the build failure for client where the vendor header
fastrpc/rpcmem.h unconditionally includes AEEStdDef.h,
which is not exported by fastrpc project.
.../usr/include/fastrpc/rpcmem.h:7:10: fatal error: AEEStdDef.h: No such file or directory
7 | #include "AEEStdDef.h"
| ^~~~~~~~~~~~~
compilation terminated.
Signed-off-by: Ekansh Gupta <[email protected]>
FastRPC library supports 5 domains. There are some products where new domains, GPDSP0 and GPDSP1, are supported. Add changes to support GPDSP domains.
The fastrpc_test.c now appends testlibdir and testdspdir to LD_LIBRARY_PATH and DSP_LIBRARY_PATH, respectively. Previously, these environment variables were overwritten. Makefile.am was updated to pass -Dtestlibdir and -Dtestdspdir to fastrpc_test.c, enabling correct environment variable construction. Signed-off-by: Vinayak Katoch <[email protected]>
Updated README.md to reflect make install for installation, replacing manual file copying. Simplified running instructions by removing the need to cd to /usr/bin, as files are now in standard system paths. Signed-off-by: Vinayak Katoch <[email protected]>
Updated README.md with clear instructions for pushing files and running fastrpc_test on Linux and Android.
Moved all non-essential logs—such as warnings and non-user-impacting errors—to the RUNTIME level. It retains a single log each for framework initialization and deinitialization, and includes logs for PD creation and handle open/close. Signed-off-by: Vinayak Katoch <[email protected]>
The PRINT_WARN_USE_DOMAINS() macro, along with its conditional Android-specific warning about non-domain usage of FastRPC, has been entirely removed from the codebase. Signed-off-by: Vinayak Katoch <[email protected]>
…ibility (#189) Moved all non-essential logs—such as warnings and non-user-impacting errors—to the RUNTIME level. It retains a single log each for framework initialization and deinitialization, and includes logs for PD creation and handle open/close.
* CI: Switch all reusable workflow references to 'development' branch - Ensures CI uses latest logic from development branch Signed-off-by: Tharun Kumar Merugu <[email protected]> * CI Fix: Ensure proper packaging of ramdisk contents into cpio archive - Added missing directory creation for ramdisk_test before decompression - Ensured only contents of ramdisk_fastrpc are archived (not the folder itself) - Applied safe and consistent cpio and gzip usage - Improved error handling and quoting for robustness Signed-off-by: Tharun Kumar Merugu <[email protected]> --------- Signed-off-by: Tharun Kumar Merugu <[email protected]>
Integrates `make install` with `DESTDIR=${{ inputs.workspace_path }}/artifacts/ramdisk_fastrpc`
to automate the deployment of fastrpc bins, libs, and tests.
This change directly addresses upstream requirements (qualcomm/fastrpc#194)
for specific stub/skeleton placement. It eliminates manual copying,
ensuring proper installation paths essential for `LD_LIBRARY_PATH` and
`DSP_LIBRARY_PATH` configuration.
Resolves intermittent GitHub Actions LAVA test failures caused by incorrect library setup.
Signed-off-by: Tharun Kumar Merugu <[email protected]>
### Summary This PR updates the deployment paths for `fastrpc_test` binaries and resources in the GitHub Actions LAVA test environment to reflect recent changes from qualcomm/fastrpc#194.. It also ensures that environment variables for fastrpc testing are set up correctly, addressing test execution failures in GitHub Actions LAVA due to incorrect library paths. ### Root Cause Recent updates to the fastrpc test framework now require that library stubs and skels reside in: - `/usr/local/lib/fastrpc_test` - `/usr/local/share/fastrpc_test` Previously, these paths were not enforced, leading to test execution failures in the Test environment. ### Changes - Eliminate the manual file copying step - Utilize make install with DESTDIR=${{ inputs.workspace_path }}/artifacts/ramdisk_fastrpc to place the files in the necessary directories ### Reference Upstream PR: qualcomm/fastrpc#194 - Appends `testlibdir` and `testdspdir` to `LD_LIBRARY_PATH` and `DSP_LIBRARY_PATH` - Updates `Makefile.am` to pass correct environment variables - Simplifies installation and run instructions in `README.md` ### Impact This change ensures compatibility with the updated fastrpc test framework and restores test execution.
Remove dependency on the PD_EXCEPTION_LOGGING compile-time flag to ensure PD exception logging is enabled by default. This change allows DSP fatal logs to be redirected to the shared buffer for apps-side logging without requiring explicit flag definition. Signed-off-by: Abhinav Parihar <[email protected]>
- Removed separate `full_matrix` definition. - Consolidated all configuration under a single `build_matrix`. - Included fields: `machine`, `firmware` and `lavaname`. - Removed the logic for extracting the LAVA machine name dynamically. - The machine name is now directly assigned from build_matrix.lavaname, reducing complexity and improving maintainability. Signed-off-by: Tharun Kumar Merugu <[email protected]>
- Updated the `pull_request_target` GitHub Actions workflow. - Ensures correct context and permissions for PR-triggered jobs. - Improves security and reliability for workflows triggered by external contributions. Signed-off-by: Tharun Kumar Merugu <[email protected]>
- Updated `paths-ignore` in GitHub Actions to exclude changes under `.github/**`. - Prevents unnecessary workflow runs for CI configuration-only changes. - Improves efficiency and reduces redundant CI executions. Signed-off-by: Tharun Kumar Merugu <[email protected]>
This PR addresses recent workflow failures in GitHub Actions caused by LAVA token permission issues during pull request events. ### Changes: ✅ **pull_request_target Update:** Ensures workflows triggered by pull requests run in the correct context (base repository), allowing access to required secrets and resolving permission-related test failures. ✅ **paths-ignore Addition:** Excludes .github/** from triggering CI workflows, preventing unnecessary runs for changes limited to workflow or metadata files. These updates improve the reliability, security, and efficiency of the CI pipeline.
Implement automated ABI/API compatibility checks on pull requests targeting development and main branches. Build AArch64 libraries using GNU cross-compilation toolchain, generate ABI dumps with abi-dumper for libadsprpc/libcdsprpc/libsdsprpc, and compare against baseline using abi-compliance-checker. Fail workflow on incompatibilities and upload detailed HTML reports as artifacts. Signed-off-by: Vinayak Katoch <[email protected]>
- Added support for the `qcs6490` target alongside existing `qcs9100` and `qcs8300` targets. - Introduced a new `target` attribute For `qcs6490`, resolved DSP firmware and repo path discrepancy: - DSP firmware search path uses `qcs6490` - Repo folder path uses `qcm6490` - Enhances target flexibility and ensures accurate path resolution for build and test workflows. Signed-off-by: Tharun Kumar Merugu <[email protected]>
Install AEEStdDef.h, HAP_debug.h and HAP_farf.h that are required by to compile the skel and stub files generated by qaic compiler. qaic compiler includes these header files, however fastrpc does not install these files, fix this by installing the required files. Signed-off-by: Srinivas Kandagatla <[email protected]>
Ensures tlsKey is set up before any components that might rely on it. Prevents redundant or conflicting initialization by removing duplicate pthread_key_create call. Aligns initialization order for improved stability and correctness. Signed-off-by: Aman Pandey <[email protected]>
Fixes #230 - Currently `dsprpcd.c` attempts to `dlopen()` unversioned libraries such as `libadsp_default_listener.so`, This breaks on distributions which only ship ABI-versioned libraries in runtime packages. - It also risks binding to a different ABI in the future if a .so.2 is introduced, as mentioned in #230. This patch updates the default listener library names to include `.so.1` and adds a fallback to the un-versioned `.so` for environments that still ship only the un-versioned file.
When PD exception logging is enabled by default, RootPD daemons will be blocked as adspmsgd_init will wait for listener which is not initialized by the time it is called. Initialize listener before adspmsgd initialization. Signed-off-by: Jianping Li <[email protected]>
When PD exception logging is enabled by default, RootPD daemons will be blocked as adspmsgd_init will wait for listener which is not initialized by the time it is called. Initialize listener before adspmsgd intialization.
…nit (#254) Moved pthread_key_create(&tlsKey, exit_thread) earlier in fastrpc_apps_user_init to ensure thread-local storage is initialized before dependent components. This corrects the previous placement, which could lead to undefined behavior.
Implement automated ABI/API compatibility checks on pull requests targeting development and main branches. Build AArch64 libraries using GNU cross-compilation toolchain, generate ABI dumps with abi-dumper for libadsprpc/libcdsprpc/libsdsprpc, and compare against baseline using abi-compliance-checker. Fail workflow on incompatibilities and upload detailed HTML reports as artifacts.
…dling improvements (#246)
This PR introduces a set of tightly related changes, all aimed at
enabling support for the new **qcs6490** target in the CI pipeline.
While the update touches multiple areas, each change is interdependent
and collectively required to ensure proper integration and functionality
for `qcs6490`.
### Key Changes:
1. **Matrix Consolidation**
- Removed the separate `full_matrix` definition.
- Unified the configuration under a single `build_matrix`, now including
all necessary fields: `machine`, `firmware`, `lavaname`, and `target`.
- This simplifies the pipeline setup and ensures consistent parameter
availability for job naming and test execution.
2. **Target-Specific Enhancements**
- **qcs6490 Support Added**: Enabled support for the `qcs6490` target
alongside existing `sa8775p` and `qcs8300` targets.
- **Target Path Resolution**: For qcs6490, the DSP firmware search path
uses `qcs6490`, while the repo folder path uses `qcm6490`. To handle
this discrepancy, a new `target` attribute is introduced:
```yaml
target:
description: target identifier
type: string
required: true
```
3. **Flexible Matching Logic**
- Updated the path matching logic to allow matching the target name
**anywhere** in the path, rather than only at the end. This improves
compatibility with diverse directory structures.
4. **Simplified LAVA Machine Assignment**
- Removed the logic for extracting the LAVA machine name dynamically.
- The machine name is now directly assigned from
`build_matrix.lavaname`, reducing complexity and improving
maintainability.
5. **Attribute Renaming**
- Standardized all four target configuration attributes for clarity and
consistency:
- `deviceTree`: Device tree blob name
- `linuxFirmware`: Firmware identifier
- `lavaDeviceName`: LAVA machine name
- `hexDSPBinary`: Hexagon DSP binary identifier
---
All these changes are introduced as part of a single PR to ensure
**qcs6490 target support is complete and functional**. Each commit is
tightly coupled and contributes to the overall goal of enabling qcs6490
in a clean and maintainable way.
- Added config.yaml with Project Name, Branch Name, Mode: blocking, and Public Header Paths - Integrated ARMOR into PR event-based workflow to validate public headers - Introduced API breakage checks on every PR to ensure backward compatibility Signed-off-by: Tharun Kumar Merugu <[email protected]>
Install AEEStdDef.h, HAP_debug.h and HAP_farf.h that are required by to compile the skel and stub files generated by qaic compiler. qaic compiler includes these header files, however fastrpc does not install these files, fix this by installing the required files.
- Adds preflight checks to detect API/ABI breakages early - Uses Clang AST for syntactic/semantic analysis on public headers - Improves backward compatibility with custom CSE-aligned rules Signed-off-by: Tharun Kumar Merugu <[email protected]>
…259) This PR introduces the ARMOR (API Revision Monitoring and Reporting) tool into the workflow to ensure backward compatibility across releases. ### Purpose - Maintain API/ABI stability. - Detect breaking changes early in the development cycle. ### Key Changes - Added public_headers/config.yaml in the root directory of the default branch. - Config includes: - Project Name - Branch Name - Mode: non-blocking (blocking mode will be enabled later) - Public Header Paths (one per line) - Integrated ARMOR GitHub Action into the Pull Request event-based workflow. - Clang Frontend Analysis: Utilizes Clang to perform syntactic and semantic checks, generating an AST for API monitoring. ### Mode Details - **Non-blocking:** Checks run for informational purposes; PR can merge even if checks fail. - **Blocking (future):** Requires GitHub branch protection; PR merge will be blocked if checks fail. ### ARMOR Execution - Runs only for PRs that modify headers on specified branches and in the defined mode from config.yml
- Update hap_example with proper handling for skip and failed cases - Add multithreading example computing parallel sum - Update fastrpc_test runner to handle pass, failed, and skipped cases - Improve test result reporting and categorization Signed-off-by: Vinayak Katoch <[email protected]>
…264) - Update hap_example with proper handling for skip and failed cases - Add multithreading example computing parallel sum - Update fastrpc_test runner to handle pass, failed, and skipped cases - Improve test result reporting and categorization Fixes: #231
Update DSP mount and search path configuration to support dynamic runtime resolution. Paths are now resolved based on platform-specific entries defined in the conf directory, allowing flexible DSP library location management Co-authored-by: Vinayak Katoch <[email protected]> Signed-off-by: Abhinav Parihar <[email protected]>
…nt paths Avoid overwriting the `envlistlen` variable when fetching paths from environment variables other than ADSP_LIBRARY_PATH or ADSP_AVS_PATH. The variable was being reset using an uninitialized list length, leading to undefined behavior. This change ensures `envlistlen` retains its correct value as populated during path retrieval. Signed-off-by: Abhinav Parihar <[email protected]>
Updated step name from "Install auto tools" to "Install auto tools and dependencies" in both build_linux_gnu.yml and build_linux_arm64.yml. Added `apt-get update` and installed `libyaml-dev` along with automake to ensure required dependencies are available for compilation. Signed-off-by: Abhinav Parihar <[email protected]>
Link libhap_example.so and libmultithreading.so to the correct version libcdsprpc.so.1 ensure proper runtime behavior. Signed-off-by: Vinayak Katoch <[email protected]>
Update DSP mount and search path configuration to support dynamic runtime resolution - Refactored mount logic to allow flexible path overrides - Added support for environment-based search path injection
Link libhap_example.so and libmultithreading.so to the correct version libcdsprpc.so.1 ensure proper runtime behavior.
Use SUBSYSTEM_NAME[domain] instead of the hard-coded "adsp" when computing the absolute file name in fopen_from_dirlist(), so paths are constructed for the actual domain in use. This fixes incorrect lookups on multi domain scenarios. Signed-off-by: Abhinav Parihar <[email protected]>
In open_shell(), remove redundant ALWAYS logs. Signed-off-by: Abhinav Parihar <[email protected]>
Use SUBSYSTEM_NAME[domain] instead of the hard-coded "adsp" when computing the absolute file name in fopen_from_dirlist(), so paths are constructed for the actual domain in use. This fixes incorrect lookups on multi domain scenarios. In open_shell(), remove redundant ALWAYS logs.
This commit pulls in upstream changes from 'v1.0.2' into the Debian packaging branch. Since upstream project might have content of their own in their .github/ folder (because they have CI stuff on their side), it's important to NOT pick up .github/ folder from upstream, and only leave the .github/ folder from debian packaging branch. The same applies to debian/ folder if upstream has one (which is rare but possible). This commit was generated automatically by qcom-build-utils/scripts/merge_debian_packaging_upstream. Signed-off-by: GitHub Service Bot <[email protected]>
Signed-off-by: GitHub Service Bot <[email protected]>
Signed-off-by: Robie Basak <[email protected]>
Signed-off-by: Robie Basak <[email protected]>
* d/control: Build-Depend on libyaml-dev and pkgconf
* d/rules: --with-config-base-dir=/usr/share/hexagon-dsp
* d/p/open-shell-path: drop (no longer required)
* Drop d/guess-dsp.sh (no longer required):
- d/{a,c}dsprpcd.service: invoke without guess-dsp.sh
- d/fastrpc-support.install: do not install guess-dsp.sh
- d/guess-dsp.sh: remove
- d/copyright: drop guess-dsp.sh licensing information
This requires hexagon-dsp-binaries to provide configuration in
/usr/share/hexagon-dsp/conf.d/, eg.
/usr/share/hexagon-dsp/conf.d/00-hexagon-dsp-binaries.yaml, which will
be done in src:hexagon-dsp-binaries. We do not yet know the packaging
version where that change will take place so cannot add a versioned
Depends easily. As this package isn't in the archive yet, it's not worth
coordinating.
Signed-off-by: Robie Basak <[email protected]>
Signed-off-by: Robie Basak <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an automated PR to test the promotion of this package repo to the upstream project version 1.0.2.
This PR merges the upstream changes from the upstream tag 'v1.0.2' into the debian/qcom-next branch, and updated the debian/changelog version to reflect this new version. Whatever was the distro version before (the part after the '-' in a version x.y.z-a), it has been reset to -1.
The upstream tag 'v1.0.2' has already been merged into the upstream/latest branch, and this PR merges that branch into debian/qcom-next.
In other words, this repo already contains the upstream changes in the upstream/latest branch, but the debian packaging is not yet updated to reflect this new upstream version. This is what this PR is doing.
The build-debian-package.yml workflow is triggered automatically in this PR to test the promotion by building the Debian package with the updated upstream code and packaging.
If something breaks due to the promotion of the upstream sources to this new revision, this is the moment where you can checkout this branch locally, make changes and push additional commits to make the build pass.
For example: you may need to add patches to the debian/patches/ folder to fix issues that were introduced upstream since the last version we were using, such as a new binary created upstream that needs to be packaged, or a build system change that requires updating the debian/rules file, etc.
Once you are satisfied with the changes, click the 'Merge' button below to finalize the promotion.
Note: Due to the nature of the graph that is attempted to be merged, only a merge (and therefore the creation of a merge commit) with the 'Merge' button will work.
Attempting second option 'Squash and Merge' or 'Rebase and Merge' will fail. This is because in both of these two cases, this head branch woule need to be cleanly rebasable onto the base branch, which is not the case here.
This generated diagram attemps to illustrate what happened and what will happen when you click the 'Merge' button below.:
The commit tagged 'upstream/1.0.2' is a merge from the upstream tag v1.0.2 commit where in addition,
special git wizardry happened to perform a special filtering of any potential upstream .github/ and debian/ folders have been filtered out,
and only homonym folders from the debian/latest branch have been kept.
It represents the merge of the upstream/latest branch into debian/qcom-next.
--- config: themeVariables: 'gitInv2': '#ff0000' gitGraph: parallelCommits: true rotateCommitLabel: true --- gitGraph BT: branch debian/qcom-next order: 1 branch upstream-main order: 4 branch upstream/latest order: 3 checkout main commit id: 'Unrelated history: workflows, doc' checkout upstream-main commit checkout upstream-main commit commit id: 'release' tag: 'v1.0.2' checkout upstream/latest commit id: 'previous stuff' merge upstream-main id: 'Filtered .github/debian folders' tag: 'upstream/1.0.2' checkout debian/qcom-next commit commit commit branch debian/pr/1.0.2-1 order: 2 merge upstream/latest id: 'Merged Upstream' commit id: 'Changelog version update' type: HIGHLIGHT