mirror of
https://github.com/home-assistant/operating-system.git
synced 2026-02-15 07:29:08 +00:00
* 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) ->a882f4d750SND_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>
116 lines
3.7 KiB
Diff
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");
|