1
0
mirror of https://github.com/home-assistant/operating-system.git synced 2026-02-15 07:29:08 +00:00
Files
operating-system/buildroot-external/package/eq3_char_loop/0002-version1_2.patch
Nick Venenga fbd5c2c751 Update generic-x86-64 Linux kernel to 6.12 (#3767)
* Linux: Update kernel to 6.12.6

* Linux 6.12

* https://github.com/home-assistant/operating-system/pull/3767#discussion_r1899169881

* https://github.com/home-assistant/operating-system/pull/3767#discussion_r1899170543

* Add patch descriptions, kernel ver conditionals

Signed-off-by: Nick Venenga <nick@venenga.com>

* Remove extra zram compression algos

* Undo fragment files config change

...for platforms that didn't receive kernel updates

* Sort Dockerfile apt packages

* Add Upstream refs to patches

* Re-enable TC

* Restore v6.6.y kernel fragments

* Update buildroot to rebased branch

* Apply 6.12 migration only to generic-x86-64

* package/eq3_char_loop: port patch from RaspberryMatic by @jens-maus

* package/generic_raw_uart: port patch from RaspberryMatic by @jens-maus

* Restore buildroot-external/board/pc/patches/linux

It's used in ova and generic-aarch64 defconfigs. Keep the path removed from
generic-x86-64 defconfig.

* Split linux patches to be version-specific

The IPv6 reachability patch needs different context on 6.6.y and 6.12.y -
introduce version-specific linux directories. To avoid the need for extra
directory for version used in RPi, copy those patches to its patches directory.

* Replace removed Intel Skylake audio driver with Intel AVS

The Skylake driver was removed and should be now replaced either by Intel HD
Audio or Intel AVS. Remove the old options and enable AVS.

SND_SOC_INTEL_SKYLAKE=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:63)
SND_SOC_INTEL_SKL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:64)
SND_SOC_INTEL_APL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:65)
SND_SOC_INTEL_KBL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:66)
SND_SOC_INTEL_GLK=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:67)
SND_SOC_INTEL_CNL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:68)
SND_SOC_INTEL_CFL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:69)
SND_SOC_INTEL_CML_H=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:70)
SND_SOC_INTEL_CML_LP=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:71)
SND_SOC_INTEL_SKYLAKE_FAMILY=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:72)
SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:73)
SND_SOC_INTEL_SKYLAKE_COMMON=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:74)
-> a882f4d750

SND_SOC_INTEL_SST=m requested, actual = n (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:58)
-> 970d299b0a

* Remove I2C_COMPAT option

I2C_COMPAT=y not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:163)
-> 7e722083fc

* Correctly disable module compression after Kconfig change

The Kconfig structure was changed, there's now a top-level bool:
c7ff693fa2

---------

Signed-off-by: Nick Venenga <nick@venenga.com>
Co-authored-by: Jan Čermák <sairon@sairon.cz>
2025-01-28 14:57:07 +01:00

116 lines
3.7 KiB
Diff

KernelDrivers/eq3_char_loop.c: updated to latest 1.1 version
Upstream: Not applicable
Signed-off-by: Jens Maus <mail@jens-maus.de>
--- ./KernelDrivers/eq3_char_loop.c.orig 2017-05-14 22:57:19.109181928 +0200
+++ ./KernelDrivers/eq3_char_loop.c 2020-06-04 14:36:10.188174788 +0200
@@ -48,8 +48,8 @@
/* Use 'L' as magic number */
#define EQ3LOOP_IOC_MAGIC 'L'
-#define EQ3LOOP_IOCSCREATESLAVE _IOW(EQ3LOOP_IOC_MAGIC, 1, unsigned long)
-#define EQ3LOOP_IOCGEVENTS _IOR(EQ3LOOP_IOC_MAGIC, 2, unsigned long)
+#define EQ3LOOP_IOCSCREATESLAVE _IOW(EQ3LOOP_IOC_MAGIC, 1, uint32_t)
+#define EQ3LOOP_IOCGEVENTS _IOR(EQ3LOOP_IOC_MAGIC, 2, uint32_t)
#define EVENT_BIT_SLAVE_OPENED 0
#define EVENT_BIT_SLAVE_CLOSED 1
@@ -62,6 +62,12 @@
#define DUMP_READWRITE 0
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
+ #define _access_ok(__type, __addr, __size) access_ok(__addr, __size)
+#else
+ #define _access_ok(__type, __addr, __size) access_ok(__type, __addr, __size)
+#endif
+
struct eq3loop_channel_data
{
struct circ_buf master2slave_buf;
@@ -353,7 +359,7 @@
{
ret=-EFAULT;
count_to_end = CIRC_SPACE( head, channel->master2slave_buf.tail, BUFSIZE);
- printk( KERN_ERR EQ3LOOP_DRIVER_NAME ": eq3loop_write_master() %s: not enought space in the buffers. free space = %i, required space = %i", channel->name,count_to_end,count );
+ printk( KERN_ERR EQ3LOOP_DRIVER_NAME ": eq3loop_write_master() %s: not enough space in buffers. free space = %zu, required space = %zu", channel->name,count_to_end,count );
goto out;
}
/* ok, space is free, write something */
@@ -389,7 +395,7 @@
up (&channel->sem);
if(ret < 0)
{
- printk( KERN_INFO EQ3LOOP_DRIVER_NAME ": eq3loop_write_master() retrun error:");
+ printk( KERN_INFO EQ3LOOP_DRIVER_NAME ": eq3loop_write_master() return error: %zd", ret);
}
if( ret > 0 || CIRC_CNT(channel->master2slave_buf.head,channel->master2slave_buf.tail,BUFSIZE) )
{
@@ -456,9 +462,9 @@
* "write" is reversed
*/
if (_IOC_DIR(cmd) & _IOC_READ)
- ret = !access_ok(VERIFY_WRITE, (void *)arg, _IOC_SIZE(cmd));
+ ret = !_access_ok(VERIFY_WRITE, (void *)arg, _IOC_SIZE(cmd));
else if (_IOC_DIR(cmd) & _IOC_WRITE)
- ret = !access_ok(VERIFY_READ, (void *)arg, _IOC_SIZE(cmd));
+ ret = !_access_ok(VERIFY_READ, (void *)arg, _IOC_SIZE(cmd));
if (ret) return -EFAULT;
switch(cmd) {
@@ -500,7 +506,7 @@
switch(cmd) {
case TCGETS:
- if( access_ok(VERIFY_READ, (void *)arg, sizeof(struct termios) ) )
+ if( _access_ok(VERIFY_READ, (void *)arg, sizeof(struct termios) ) )
{
ret = copy_to_user( (void*)arg, &channel->termios, sizeof(struct termios) );
} else {
@@ -508,7 +514,7 @@
}
break;
case TCSETS:
- if( access_ok(VERIFY_WRITE, (void *)arg, sizeof(struct termios) ) )
+ if( _access_ok(VERIFY_WRITE, (void *)arg, sizeof(struct termios) ) )
{
ret = copy_from_user( &channel->termios, (void*)arg, sizeof(struct termios) );
} else {
@@ -533,6 +539,12 @@
break;
case TIOCMSET:
break;
+ case TIOCSERGETLSR:
+ ret = -ENOIOCTLCMD;
+ break;
+ case TIOCGICOUNT:
+ ret = -ENOIOCTLCMD;
+ break;
default:
ret = -ENOTTY;
break;
@@ -541,6 +553,7 @@
if( ret == -ENOTTY )
{
printk( KERN_NOTICE EQ3LOOP_DRIVER_NAME ": eq3loop_ioctl_slave() %s: unhandled ioctl 0x%04X\n", channel->name, cmd );
+ ret = -ENOIOCTLCMD;
}
return ret;
}
@@ -908,6 +921,7 @@
.ioctl = eq3loop_ioctl,
#else
.unlocked_ioctl = eq3loop_ioctl,
+ .compat_ioctl = eq3loop_ioctl,
#endif
};
@@ -979,4 +993,4 @@
module_exit(eq3loop_exit);
MODULE_DESCRIPTION("eQ-3 IPC loopback char driver");
MODULE_LICENSE("GPL");
-
+MODULE_VERSION("1.2");