restore lost packages from 0.2.3 + fix overwritten 0.2.4 files
- Restore 29 recipe symlinks (libdrm, qtbase, dbus, sddm, pipewire, etc.) - Restore 33 patches (KDE, libdrm, mesa, pipewire, sddm, wireplumber) - Restore 20+ local/scripts (audit, lint, test, build helpers) - Restore src/cook/scheduler.rs, status.rs, gnu-config/ - Restore scripts/patch-inclusion-gate.sh, run_mini1.sh, validate-collision-log.sh - Recover TLC source from HEAD (was overwritten by 0.2.3 checkout) - Recover 11 local/docs plans from HEAD (were overwritten) - Recover qt6-wayland-smoke symlink from HEAD - Fix MOTD: remove garbled ASCII art, use clean text - Update version: 0.2.0 -> 0.2.4 in os-release, motd, config - Reduce filesystem_size: 1536 -> 512 MiB - Add ABSOLUTE RULE to AGENTS.md: never delete/ignore packages - Reduce pcid scheme log verbosity: info -> debug
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* mux/consumer.h - definitions for the multiplexer consumer interface
|
||||
*
|
||||
* Copyright (C) 2017 Axentia Technologies AB
|
||||
*
|
||||
* Author: Peter Rosin <peda@axentia.se>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_MUX_CONSUMER_H
|
||||
#define _LINUX_MUX_CONSUMER_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
|
||||
struct device;
|
||||
struct mux_control;
|
||||
struct mux_state;
|
||||
|
||||
#if IS_ENABLED(CONFIG_MULTIPLEXER)
|
||||
|
||||
unsigned int mux_control_states(struct mux_control *mux);
|
||||
int __must_check mux_control_select_delay(struct mux_control *mux,
|
||||
unsigned int state,
|
||||
unsigned int delay_us);
|
||||
int __must_check mux_state_select_delay(struct mux_state *mstate,
|
||||
unsigned int delay_us);
|
||||
int __must_check mux_control_try_select_delay(struct mux_control *mux,
|
||||
unsigned int state,
|
||||
unsigned int delay_us);
|
||||
int __must_check mux_state_try_select_delay(struct mux_state *mstate,
|
||||
unsigned int delay_us);
|
||||
|
||||
static inline int __must_check mux_control_select(struct mux_control *mux,
|
||||
unsigned int state)
|
||||
{
|
||||
return mux_control_select_delay(mux, state, 0);
|
||||
}
|
||||
|
||||
static inline int __must_check mux_state_select(struct mux_state *mstate)
|
||||
{
|
||||
return mux_state_select_delay(mstate, 0);
|
||||
}
|
||||
|
||||
static inline int __must_check mux_control_try_select(struct mux_control *mux,
|
||||
unsigned int state)
|
||||
{
|
||||
return mux_control_try_select_delay(mux, state, 0);
|
||||
}
|
||||
|
||||
static inline int __must_check mux_state_try_select(struct mux_state *mstate)
|
||||
{
|
||||
return mux_state_try_select_delay(mstate, 0);
|
||||
}
|
||||
|
||||
int mux_control_deselect(struct mux_control *mux);
|
||||
int mux_state_deselect(struct mux_state *mstate);
|
||||
|
||||
struct mux_control *mux_control_get(struct device *dev, const char *mux_name);
|
||||
struct mux_control *mux_control_get_optional(struct device *dev, const char *mux_name);
|
||||
void mux_control_put(struct mux_control *mux);
|
||||
|
||||
struct mux_control *devm_mux_control_get(struct device *dev, const char *mux_name);
|
||||
struct mux_state *devm_mux_state_get(struct device *dev, const char *mux_name);
|
||||
struct mux_state *devm_mux_state_get_optional(struct device *dev, const char *mux_name);
|
||||
struct mux_state *devm_mux_state_get_selected(struct device *dev, const char *mux_name);
|
||||
struct mux_state *devm_mux_state_get_optional_selected(struct device *dev, const char *mux_name);
|
||||
|
||||
#else
|
||||
|
||||
static inline unsigned int mux_control_states(struct mux_control *mux)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int __must_check mux_control_select_delay(struct mux_control *mux,
|
||||
unsigned int state, unsigned int delay_us)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
static inline int __must_check mux_state_select_delay(struct mux_state *mstate,
|
||||
unsigned int delay_us)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
static inline int __must_check mux_control_try_select_delay(struct mux_control *mux,
|
||||
unsigned int state,
|
||||
unsigned int delay_us)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
static inline int __must_check mux_state_try_select_delay(struct mux_state *mstate,
|
||||
unsigned int delay_us)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int __must_check mux_control_select(struct mux_control *mux,
|
||||
unsigned int state)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int __must_check mux_state_select(struct mux_state *mstate)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int __must_check mux_control_try_select(struct mux_control *mux,
|
||||
unsigned int state)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int __must_check mux_state_try_select(struct mux_state *mstate)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int mux_control_deselect(struct mux_control *mux)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
static inline int mux_state_deselect(struct mux_state *mstate)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline struct mux_control *mux_control_get(struct device *dev, const char *mux_name)
|
||||
{
|
||||
return ERR_PTR(-EOPNOTSUPP);
|
||||
}
|
||||
static inline struct mux_control *mux_control_get_optional(struct device *dev,
|
||||
const char *mux_name)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
static inline void mux_control_put(struct mux_control *mux) {}
|
||||
|
||||
static inline struct mux_control *devm_mux_control_get(struct device *dev, const char *mux_name)
|
||||
{
|
||||
return ERR_PTR(-EOPNOTSUPP);
|
||||
}
|
||||
static inline struct mux_state *devm_mux_state_get(struct device *dev, const char *mux_name)
|
||||
{
|
||||
return ERR_PTR(-EOPNOTSUPP);
|
||||
}
|
||||
static inline struct mux_state *devm_mux_state_get_optional(struct device *dev,
|
||||
const char *mux_name)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
static inline struct mux_state *devm_mux_state_get_selected(struct device *dev,
|
||||
const char *mux_name)
|
||||
{
|
||||
return ERR_PTR(-EOPNOTSUPP);
|
||||
}
|
||||
static inline struct mux_state *devm_mux_state_get_optional_selected(struct device *dev,
|
||||
const char *mux_name)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_MULTIPLEXER */
|
||||
|
||||
#endif /* _LINUX_MUX_CONSUMER_H */
|
||||
@@ -0,0 +1,109 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* mux/driver.h - definitions for the multiplexer driver interface
|
||||
*
|
||||
* Copyright (C) 2017 Axentia Technologies AB
|
||||
*
|
||||
* Author: Peter Rosin <peda@axentia.se>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_MUX_DRIVER_H
|
||||
#define _LINUX_MUX_DRIVER_H
|
||||
|
||||
#include <dt-bindings/mux/mux.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/semaphore.h>
|
||||
|
||||
struct mux_chip;
|
||||
struct mux_control;
|
||||
|
||||
/**
|
||||
* struct mux_control_ops - Mux controller operations for a mux chip.
|
||||
* @set: Set the state of the given mux controller.
|
||||
*/
|
||||
struct mux_control_ops {
|
||||
int (*set)(struct mux_control *mux, int state);
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mux_control - Represents a mux controller.
|
||||
* @lock: Protects the mux controller state.
|
||||
* @chip: The mux chip that is handling this mux controller.
|
||||
* @cached_state: The current mux controller state, or -1 if none.
|
||||
* @states: The number of mux controller states.
|
||||
* @idle_state: The mux controller state to use when inactive, or one
|
||||
* of MUX_IDLE_AS_IS and MUX_IDLE_DISCONNECT.
|
||||
* @last_change: Timestamp of last change
|
||||
*
|
||||
* Mux drivers may only change @states and @idle_state, and may only do so
|
||||
* between allocation and registration of the mux controller. Specifically,
|
||||
* @cached_state is internal to the mux core and should never be written by
|
||||
* mux drivers.
|
||||
*/
|
||||
struct mux_control {
|
||||
struct semaphore lock; /* protects the state of the mux */
|
||||
|
||||
struct mux_chip *chip;
|
||||
int cached_state;
|
||||
|
||||
unsigned int states;
|
||||
int idle_state;
|
||||
|
||||
ktime_t last_change;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mux_chip - Represents a chip holding mux controllers.
|
||||
* @controllers: Number of mux controllers handled by the chip.
|
||||
* @dev: Device structure.
|
||||
* @id: Used to identify the device internally.
|
||||
* @ops: Mux controller operations.
|
||||
* @mux: Array of mux controllers that are handled.
|
||||
*/
|
||||
struct mux_chip {
|
||||
unsigned int controllers;
|
||||
struct device dev;
|
||||
int id;
|
||||
|
||||
const struct mux_control_ops *ops;
|
||||
struct mux_control mux[] __counted_by(controllers);
|
||||
};
|
||||
|
||||
#define to_mux_chip(x) container_of((x), struct mux_chip, dev)
|
||||
|
||||
/**
|
||||
* mux_chip_priv() - Get the extra memory reserved by mux_chip_alloc().
|
||||
* @mux_chip: The mux-chip to get the private memory from.
|
||||
*
|
||||
* Return: Pointer to the private memory reserved by the allocator.
|
||||
*/
|
||||
static inline void *mux_chip_priv(struct mux_chip *mux_chip)
|
||||
{
|
||||
return &mux_chip->mux[mux_chip->controllers];
|
||||
}
|
||||
|
||||
struct mux_chip *mux_chip_alloc(struct device *dev,
|
||||
unsigned int controllers, size_t sizeof_priv);
|
||||
int mux_chip_register(struct mux_chip *mux_chip);
|
||||
void mux_chip_unregister(struct mux_chip *mux_chip);
|
||||
void mux_chip_free(struct mux_chip *mux_chip);
|
||||
|
||||
struct mux_chip *devm_mux_chip_alloc(struct device *dev,
|
||||
unsigned int controllers,
|
||||
size_t sizeof_priv);
|
||||
int devm_mux_chip_register(struct device *dev, struct mux_chip *mux_chip);
|
||||
|
||||
/**
|
||||
* mux_control_get_index() - Get the index of the given mux controller
|
||||
* @mux: The mux-control to get the index for.
|
||||
*
|
||||
* Return: The index of the mux controller within the mux chip the mux
|
||||
* controller is a part of.
|
||||
*/
|
||||
static inline unsigned int mux_control_get_index(struct mux_control *mux)
|
||||
{
|
||||
return mux - mux->chip->mux;
|
||||
}
|
||||
|
||||
#endif /* _LINUX_MUX_DRIVER_H */
|
||||
Reference in New Issue
Block a user