mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
114 lines
4.2 KiB
Diff
114 lines
4.2 KiB
Diff
From cd95e8fd35c9fb37de5723a464d5fcc831c58ec1 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Lessard?= <jefflessard3@gmail.com>
|
|
Date: Sat, 30 Aug 2025 20:31:38 -0400
|
|
Subject: [PATCH 40/54] TEST: auxdisplay: linedisp: encapsulate container_of
|
|
usage within to_linedisp
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Replace direct container_of() calls with a to_linedisp() helper function
|
|
throughout the line-display auxdisplay library module. This abstraction
|
|
prepares for upcoming dual-mode support where linedisp context retrieval
|
|
will need to handle both dedicated child devices and attached parent
|
|
auxdisplay devices.
|
|
|
|
No functional changes in this patch.
|
|
|
|
Signed-off-by: Jean-François Lessard <jefflessard3@gmail.com>
|
|
---
|
|
drivers/auxdisplay/line-display.c | 21 +++++++++++++--------
|
|
1 file changed, 13 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/drivers/auxdisplay/line-display.c b/drivers/auxdisplay/line-display.c
|
|
index 8590a4cd21e0..e44341b1ea22 100644
|
|
--- a/drivers/auxdisplay/line-display.c
|
|
+++ b/drivers/auxdisplay/line-display.c
|
|
@@ -31,6 +31,11 @@
|
|
|
|
#define DEFAULT_SCROLL_RATE (HZ / 2)
|
|
|
|
+static struct linedisp *to_linedisp(struct device *dev)
|
|
+{
|
|
+ return container_of(dev, struct linedisp, dev);
|
|
+}
|
|
+
|
|
/**
|
|
* linedisp_scroll() - scroll the display by a character
|
|
* @t: really a pointer to the private data structure
|
|
@@ -133,7 +138,7 @@ static int linedisp_display(struct linedisp *linedisp, const char *msg,
|
|
static ssize_t message_show(struct device *dev, struct device_attribute *attr,
|
|
char *buf)
|
|
{
|
|
- struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
|
|
+ struct linedisp *linedisp = to_linedisp(dev);
|
|
|
|
return sysfs_emit(buf, "%s\n", linedisp->message);
|
|
}
|
|
@@ -152,7 +157,7 @@ static ssize_t message_show(struct device *dev, struct device_attribute *attr,
|
|
static ssize_t message_store(struct device *dev, struct device_attribute *attr,
|
|
const char *buf, size_t count)
|
|
{
|
|
- struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
|
|
+ struct linedisp *linedisp = to_linedisp(dev);
|
|
int err;
|
|
|
|
err = linedisp_display(linedisp, buf, count);
|
|
@@ -164,7 +169,7 @@ static DEVICE_ATTR_RW(message);
|
|
static ssize_t scroll_step_ms_show(struct device *dev,
|
|
struct device_attribute *attr, char *buf)
|
|
{
|
|
- struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
|
|
+ struct linedisp *linedisp = to_linedisp(dev);
|
|
|
|
return sysfs_emit(buf, "%u\n", jiffies_to_msecs(linedisp->scroll_rate));
|
|
}
|
|
@@ -173,7 +178,7 @@ static ssize_t scroll_step_ms_store(struct device *dev,
|
|
struct device_attribute *attr,
|
|
const char *buf, size_t count)
|
|
{
|
|
- struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
|
|
+ struct linedisp *linedisp = to_linedisp(dev);
|
|
unsigned int ms;
|
|
int err;
|
|
|
|
@@ -195,7 +200,7 @@ static DEVICE_ATTR_RW(scroll_step_ms);
|
|
|
|
static ssize_t map_seg_show(struct device *dev, struct device_attribute *attr, char *buf)
|
|
{
|
|
- struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
|
|
+ struct linedisp *linedisp = to_linedisp(dev);
|
|
struct linedisp_map *map = linedisp->map;
|
|
|
|
memcpy(buf, &map->map, map->size);
|
|
@@ -205,7 +210,7 @@ static ssize_t map_seg_show(struct device *dev, struct device_attribute *attr, c
|
|
static ssize_t map_seg_store(struct device *dev, struct device_attribute *attr,
|
|
const char *buf, size_t count)
|
|
{
|
|
- struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
|
|
+ struct linedisp *linedisp = to_linedisp(dev);
|
|
struct linedisp_map *map = linedisp->map;
|
|
|
|
if (count != map->size)
|
|
@@ -232,7 +237,7 @@ static struct attribute *linedisp_attrs[] = {
|
|
static umode_t linedisp_attr_is_visible(struct kobject *kobj, struct attribute *attr, int n)
|
|
{
|
|
struct device *dev = kobj_to_dev(kobj);
|
|
- struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
|
|
+ struct linedisp *linedisp = to_linedisp(dev);
|
|
struct linedisp_map *map = linedisp->map;
|
|
umode_t mode = attr->mode;
|
|
|
|
@@ -263,7 +268,7 @@ static DEFINE_IDA(linedisp_id);
|
|
|
|
static void linedisp_release(struct device *dev)
|
|
{
|
|
- struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
|
|
+ struct linedisp *linedisp = to_linedisp(dev);
|
|
|
|
kfree(linedisp->map);
|
|
kfree(linedisp->message);
|
|
--
|
|
2.34.1
|
|
|