Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
f190ec6
Adding CI files
May 1, 2026
29fb040
ata: add <linux/pm_runtime.h> where missing
vladimiroltean Apr 30, 2026
fa66d94
PCI: Add missing headers transitively included by <linux/phy/phy.h>
vladimiroltean Apr 30, 2026
e95c99b
usb: add missing headers transitively included by <linux/phy/phy.h>
vladimiroltean Apr 30, 2026
9a3997c
drm: add <linux/pm_runtime.h> where missing
vladimiroltean Apr 30, 2026
ec5a035
phy: add <linux/pm_runtime.h> where missing
vladimiroltean Apr 30, 2026
1a33506
phy: spacemit: include missing <linux/phy/phy.h>
vladimiroltean Apr 30, 2026
7315c85
net: lan969x: include missing <linux/of.h>
vladimiroltean Apr 30, 2026
374d2f6
PCI: Remove device links to PHY
vladimiroltean Apr 30, 2026
c0a2171
scsi: ufs: exynos: stop poking into struct phy guts
vladimiroltean Apr 30, 2026
4e2a092
scsi: ufs: qcom: keep parallel track of PHY power state
vladimiroltean Apr 30, 2026
a485ed9
scsi: ufs: qcom: include missing <linux/interrupt.h>
vladimiroltean Apr 30, 2026
e2af552
drm/rockchip: dw_hdmi: avoid direct dereference of phy->dev.of_node
vladimiroltean Apr 30, 2026
468bf24
usb: host: tegra: avoid direct dereference of phy->dev.of_node
vladimiroltean Apr 30, 2026
74ec94d
usb: gadget: tegra-xudc: avoid direct dereference of phy->dev.of_node
vladimiroltean Apr 30, 2026
a87cfde
phy: move provider API out of public <linux/phy/phy.h>
vladimiroltean Apr 30, 2026
7e18b24
phy: make phy_get_mode(), phy_(get|set)_bus_width() NULL tolerant
vladimiroltean Apr 30, 2026
f798a5a
phy: introduce phy_get_max_link_rate() helper for consumers
vladimiroltean Apr 30, 2026
77705c4
drm/rockchip: dsi: include PHY provider header
vladimiroltean Apr 30, 2026
685742c
drm: bridge: cdns-mhdp8546: use consumer API for getting PHY bus width
vladimiroltean Apr 30, 2026
ee9192a
media: sunxi: a83-mips-csi2: include PHY provider header
vladimiroltean Apr 30, 2026
06bc5ca
net: renesas: rswitch: include PHY provider header
vladimiroltean Apr 30, 2026
bbfa8e4
pinctrl: tegra-xusb: include PHY provider header
vladimiroltean Apr 30, 2026
c22bd6d
power: supply: cpcap-charger: include missing <linux/property.h>
vladimiroltean Apr 30, 2026
09cc736
phy: include PHY provider header (1/2)
vladimiroltean Apr 30, 2026
9e4f08d
phy: include PHY provider header (2/2)
vladimiroltean Apr 30, 2026
4bfc88f
phy: remove temporary provider compatibility from consumer header
vladimiroltean Apr 30, 2026
d7042eb
MAINTAINERS: add regexes for linux-phy
vladimiroltean Apr 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
29 changes: 29 additions & 0 deletions .github/scripts/build_ubuntu_defconfig.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash
# SPDX-FileCopyrightText: 2024 Rivos Inc.
#
# SPDX-License-Identifier: Apache-2.0

set -euox pipefail
d=$(dirname "${BASH_SOURCE[0]}")
. $d/series/utils.sh

logs=$(get_logs_dir)
f=${logs}/build_ubuntu_defconfig.log

date -Iseconds | tee -a ${f}
echo "Build an ubuntu kernel" | tee -a ${f}
echo "Top 16 commits" | tee -a ${f}
git log -16 --abbrev=12 --pretty="commit %h (\"%s\")" | tee -a ${f}

kernel_base_sha=$(git log -1 --pretty=%H $(git log -1 --reverse --pretty=%H .github)^)
echo "build_name $(git describe --tags ${kernel_base_sha})" | tee -a ${f}
build_name=$(git describe --tags ${kernel_base_sha})

# Build the kernel that will run LTP
export CI_TRIPLE="riscv64-linux-gnu"
cp $d/series/kconfigs/ubuntu_defconfig arch/riscv/configs/
$d/series/kernel_builder.sh rv64 testsuites plain gcc | tee -a ${f}

kernel_dir="/build/$(gen_kernel_name rv64 testsuites plain gcc)"
echo $build_name > $kernel_dir/kernel_version
#tar cJvf --exclude $(basename $kernel_path) modules.tar.xz /build/$(gen_kernel_name rv64 testsuites plain gcc)/
2 changes: 2 additions & 0 deletions .github/scripts/ci/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from .base import Base, EndTest, Verdict, submit_pw_check
from .shelltest import ShellTest
120 changes: 120 additions & 0 deletions .github/scripts/ci/base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
from abc import ABC, abstractmethod
from enum import Enum
import time
import sys

from libs import utils

sys.path.insert(0, '../libs')
from libs import log_debug

class Verdict(Enum):
PENDING = 0
PASS = 1
FAIL = 2
ERROR = 3
SKIP = 4
WARNING = 5


class EndTest(Exception):
"""
End of Test
"""

class Base(ABC):
"""
Base class for CI Tests.
"""
def __init__(self):
self.start_time = 0
self.end_time = 0
self.verdict = Verdict.PENDING
self.output = ""

def success(self):
self.end_timer()
self.verdict = Verdict.PASS

def error(self, msg):
self.verdict = Verdict.ERROR
self.output = msg
self.end_timer()
raise EndTest

def warning(self, msg):
self.verdict = Verdict.WARNING
self.output = msg
self.end_timer()

def skip(self, msg):
self.verdict = Verdict.SKIP
self.output = msg
self.end_timer()
raise EndTest

def add_failure(self, msg):
self.verdict = Verdict.FAIL
if not self.output:
self.output = msg
else:
self.output += "\n" + msg

def add_failure_end_test(self, msg):
self.add_failure(msg)
self.end_timer()
raise EndTest

def start_timer(self):
self.start_time = time.time()

def end_timer(self):
self.end_time = time.time()

def elapsed(self):
if self.start_time == 0:
return 0
if self.end_time == 0:
self.end_timer()
return self.end_time - self.start_time

def log_err(self, msg):
utils.log_error(f"CI: {self.name}: {msg}")

def log_info(self, msg):
utils.log_info(f"CI: {self.name}: {msg}")

def log_dbg(self, msg):
utils.log_debug(f"CI: {self.name}: {msg}")

@abstractmethod
def run(self, worktree=None):
"""
The child class should implement run() method
If the test fail, it should raise the EndTest exception
"""
pass

@abstractmethod
def post_run(self):
"""
The child class should implement post_run() method
"""
pass


def submit_pw_check(pw, patch, name, verdict, desc, url=None, dry_run=False):

utils.log_debug(f"Submitting the result to PW: dry_run={dry_run}")

if not dry_run:
state = 0

if verdict == Verdict.PASS:
state = 1
if verdict == Verdict.WARNING:
state = 2
if verdict == Verdict.FAIL:
state = 3

pw.post_check(patch, name, state, desc, url)
67 changes: 67 additions & 0 deletions .github/scripts/ci/shelltest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
from gettext import install
import os
import sys

sys.path.insert(0, '../libs')
from libs import RepoTool, cmd_run

from ci import Base, Verdict, EndTest, submit_pw_check

class ShellTest(Base):
"""Run shell test class
This class runs a shell based test
"""

def __init__(self, ci_data, patch, name, desc, sh):

# Common
self.name = name
self.desc = desc
self.ci_data = ci_data

self.sh = sh
self.patch = patch

super().__init__()

self.log_dbg("Initialization completed")

def run(self, worktree=None):

self.log_dbg("Run")
self.start_timer()

current_script_path = os.path.dirname(os.path.abspath(__file__))

cwd = worktree if worktree else self.ci_data.src_dir
cmd = ["bash", f"{current_script_path}/../pw_tests/{self.sh}"]
(ret, stdout, stderr) = cmd_run(cmd, cwd=cwd)

if ret == 0:
submit_pw_check(self.ci_data.pw, self.patch,
self.name, Verdict.PASS,
self.name,
None, self.ci_data.config['dry_run'])
self.success()
elif ret == 250:
url = self.ci_data.gh.create_gist(f"pw{self.ci_data.series['id']}-p{self.patch['id']}",
f"{self.name}-WARNING",
stdout + '\n' + stderr)
submit_pw_check(self.ci_data.pw, self.patch,
self.name, Verdict.WARNING,
self.name,
url, self.ci_data.config['dry_run'])
self.warning(stdout + '\n' + stderr)
else:
url = self.ci_data.gh.create_gist(f"pw{self.ci_data.series['id']}-p{self.patch['id']}",
f"{self.name}-FAIL",
stdout + '\n' + stderr)
submit_pw_check(self.ci_data.pw, self.patch,
self.name, Verdict.FAIL,
self.name,
url, self.ci_data.config['dry_run'])
self.error(stdout + '\n' + stderr)

def post_run(self):

self.log_dbg("Post Run...")
Loading
Loading