sllin: switch to updated upstream 09/27709/1
authorScott Murray <scott.murray@konsulko.com>
Mon, 30 May 2022 22:51:36 +0000 (18:51 -0400)
committerScott Murray <scott.murray@konsulko.com>
Wed, 6 Jul 2022 18:00:05 +0000 (14:00 -0400)
Changes:
- Switch the SRC_URI of the sllin driver recipe to point at the new
  revived upstream location, update to their latest commit to get
  newer kernel support, and drop all the now unnecessary local
  patches.
- Added a patch to fix compilation against 5.4 kernels before
  5.4.110.  This will be worked with upstream as time permits.
- Rename the sllin driver recipe with a _git suffix to match OE
  style expectations.
- Added the sllin driver to packagegroup-agl-demo as was being done
  in previous releases.
- Split the demo script + service unit and lin_config configuration
  out of the sllin driver recipe into a new sllin-demo recipe so
  that they're no longer conflated.  This should make it easier for
  others to reuse the sllin driver recipe.
- Update the SRC_URI and SRCREV of the lin_config recipe to also
  point at the new upstream location/version since it comes out of
  the same repository.
- Add the new master mode "-m" flag to the lin_config command line
  in the start_lin_demo.sh script (now in sllin-demo).  This turns
  out to be required for our demo usecase as upstream seem to have
  inadvertently changed the default behavior.

Bug-AGL: SPEC-4404

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: If42a825e65d93b3fa11cfddd5d6b33ec410f7cc4

13 files changed:
recipes-kernel/sllin/files/0001-Disable-sllin-driver-debug-log.patch [deleted file]
recipes-kernel/sllin/files/0002_fix_null_operation_check.patch [deleted file]
recipes-kernel/sllin/files/0003-Allow-recent-kernels-newer-4.11.x-to-build.patch [deleted file]
recipes-kernel/sllin/files/0004-Fix-build-with-5.9-kernel.patch [deleted file]
recipes-kernel/sllin/files/sllin-demo.service
recipes-kernel/sllin/files/start_lin_demo.sh
recipes-kernel/sllin/sllin-demo.bb [new file with mode: 0644]
recipes-kernel/sllin/sllin.bb [deleted file]
recipes-kernel/sllin/sllin/0001-update-makefile.patch [moved from recipes-kernel/sllin/files/0001_update_makefile.patch with 100% similarity]
recipes-kernel/sllin/sllin/0002-5.4-less-than-110-fix.patch [new file with mode: 0644]
recipes-kernel/sllin/sllin_git.bb [new file with mode: 0644]
recipes-platform/packagegroups/packagegroup-agl-demo.bb
recipes-support/lin-config/lin-config_git.bb

diff --git a/recipes-kernel/sllin/files/0001-Disable-sllin-driver-debug-log.patch b/recipes-kernel/sllin/files/0001-Disable-sllin-driver-debug-log.patch
deleted file mode 100644 (file)
index 99d6183..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From 04ffb4b8f828c19e914987e271aaf3aa7eab28bf Mon Sep 17 00:00:00 2001
-From: Yuichi Kusakabe <yuichi.kusakabe@denso-ten.com>
-Date: Thu, 29 Nov 2018 22:12:00 +0900
-Subject: [PATCH] Disable sllin driver debug log
-
-Signed-off-by: Yuichi Kusakabe <yuichi.kusakabe@denso-ten.com>
----
- sllin/sllin.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/sllin/sllin.c b/sllin/sllin.c
-index 77b2cb8..133d6e9 100644
---- a/sllin/sllin.c
-+++ b/sllin/sllin.c
-@@ -41,7 +41,9 @@
-  * Funded by:  Volkswagen Group Research
-  */
-+#if 0
- #define DEBUG                 1 /* Enables pr_debug() printouts */
-+#endif
- #include <linux/module.h>
- #include <linux/moduleparam.h>
--- 
-2.7.4
-
diff --git a/recipes-kernel/sllin/files/0002_fix_null_operation_check.patch b/recipes-kernel/sllin/files/0002_fix_null_operation_check.patch
deleted file mode 100644 (file)
index 896e268..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-diff --git a/sllin/sllin.c b/sllin/sllin.c
-index 2db896f..2969448 100644
---- a/sllin/sllin.c
-+++ b/sllin/sllin.c
-@@ -869,7 +869,6 @@ static int sllin_send_tx_buff(struct sllin *sl)
- #else
-               remains = sl->tx_lim - sl->tx_cnt;
- #endif
--
-               res = tty->ops->write(tty, sl->tx_buff + sl->tx_cnt, remains);
-               if (res < 0)
-                       goto error_in_write;
-@@ -916,10 +915,25 @@ static int sllin_send_break(struct sllin *sl)
-       unsigned long break_baud;
-       int res;
-+      netdev_dbg(sl->dev, "%s()#<BREAK_BY_BAUD>  invoke.\n", __func__);
-+      if (tty == NULL) {
-+              netdev_dbg(sl->dev, "%s() tty == NULL.\n", __func__);
-+              sl->lin_state = SLSTATE_IDLE;
-+              return -1;
-+      }
-+      if (tty->ops == NULL) {
-+              netdev_dbg(sl->dev, "%s() tty->ops == NULL.\n", __func__);
-+              sl->lin_state = SLSTATE_IDLE;
-+              return -1;
-+      }
-       break_baud = ((sl->lin_baud * 2) / 3);
-       sltty_change_speed(tty, break_baud);
--      tty->ops->flush_buffer(tty);
-+      if (tty->ops->flush_buffer) {
-+              tty->ops->flush_buffer(tty);
-+      } else {
-+              netdev_dbg(sl->dev, "%s() tty->ops->flush_buffer is NULL.\n", __func__);
-+      }
-       sl->rx_cnt = SLLIN_BUFF_BREAK;
-       sl->rx_expect = SLLIN_BUFF_BREAK + 1;
-@@ -943,6 +957,17 @@ static int sllin_send_break(struct sllin *sl)
-       unsigned long usleep_range_min;
-       unsigned long usleep_range_max;
-+      netdev_dbg(sl->dev, "%s() invoke.\n", __func__);
-+      if (tty == NULL) {
-+              netdev_dbg(sl->dev, "%s() tty == NULL.\n", __func__);
-+              sl->lin_state = SLSTATE_IDLE;
-+              return -1;
-+      }
-+      if (tty->ops == NULL) {
-+              netdev_dbg(sl->dev, "%s() tty->ops == NULL.\n", __func__);
-+              sl->lin_state = SLSTATE_IDLE;
-+              return -1;
-+      }
-       break_baud = ((sl->lin_baud * 2) / 3);
-       sl->rx_cnt = SLLIN_BUFF_BREAK;
-       sl->rx_expect = SLLIN_BUFF_BREAK + 1;
-@@ -950,21 +975,31 @@ static int sllin_send_break(struct sllin *sl)
-       /* Do the break ourselves; Inspired by
-          http://lxr.linux.no/#linux+v3.1.2/drivers/tty/tty_io.c#L2452 */
--      retval = tty->ops->break_ctl(tty, -1);
--      if (retval)
--              return retval;
-+      if (tty->ops->break_ctl) {
-+              retval = tty->ops->break_ctl(tty, -1);
-+              if (retval)
-+                      return retval;
-+      } else {
-+              netdev_dbg(sl->dev, "%s() tty->ops->break_ctl is NULL.\n", __func__);
-+      }
-       /* udelay(712); */
-       usleep_range_min = (1000000l * SLLIN_SAMPLES_PER_CHAR) / break_baud;
-       usleep_range_max = usleep_range_min + 50;
-       usleep_range(usleep_range_min, usleep_range_max);
--      retval = tty->ops->break_ctl(tty, 0);
-+      if(tty->ops->break_ctl) {
-+              retval = tty->ops->break_ctl(tty, 0);
-+      } 
-       usleep_range_min = (1000000l * 1 /* 1 bit */) / break_baud;
-       usleep_range_max = usleep_range_min + 30;
-       usleep_range(usleep_range_min, usleep_range_max);
--      tty->ops->flush_buffer(tty);
-+      if ( tty->ops->flush_buffer) {
-+              tty->ops->flush_buffer(tty);
-+      } else {
-+              netdev_dbg(sl->dev, "%s() tty->ops->flush_buffer is NULL.\n", __func__);
-+      }
-       sl->tx_cnt = SLLIN_BUFF_SYNC;
-@@ -1028,6 +1063,12 @@ static int sllin_kwthread(void *ptr)
-               int lin_dlc;
-               u8 lin_data_buff[SLLIN_DATA_MAX];
-+              if (sl == NULL) {
-+                      pr_err("sllin: sl is NULL\n");
-+              }
-+              if (sl->dev == NULL) {
-+                      pr_err("sllin: sl->dev is NULL\n");
-+              }
-               if ((sl->lin_state == SLSTATE_IDLE) && sl->lin_master &&
-                       sl->id_to_send) {
-@@ -1036,6 +1077,7 @@ static int sllin_kwthread(void *ptr)
-                       }
-               }
-+              netdev_dbg(sl->dev, "sllin_kthread <WAIT_EVENT>\n");
-               wait_event_killable(sl->kwt_wq, kthread_should_stop() ||
-                       test_bit(SLF_RXEVENT, &sl->flags) ||
-                       test_bit(SLF_TXEVENT, &sl->flags) ||
-@@ -1046,6 +1088,7 @@ static int sllin_kwthread(void *ptr)
-                               (sl->lin_state == SLSTATE_RESPONSE_WAIT))
-                               && test_bit(SLF_MSGEVENT, &sl->flags)));
-+              netdev_dbg(sl->dev, "sllin_kthread <WAKEUPED>\n");
-               if (test_and_clear_bit(SLF_RXEVENT, &sl->flags)) {
-                       netdev_dbg(sl->dev, "sllin_kthread RXEVENT\n");
-               }
-@@ -1078,21 +1121,25 @@ static int sllin_kwthread(void *ptr)
-                       sl->lin_state = SLSTATE_IDLE;
-               }
-+              netdev_dbg(sl->dev, "sllin_kthread: lin_state <%08x>\n",sl->lin_state);
-               switch (sl->lin_state) {
-               case SLSTATE_IDLE:
-                       if (!test_bit(SLF_MSGEVENT, &sl->flags))
-                               break;
--
-+                      if (sl->tx_req_skb == NULL)
-+                              netdev_dbg(sl->dev, "sl->tx_req_skb == NULL\n");
-+                      if (sl->tx_req_skb->data == NULL)
-+                              netdev_dbg(sl->dev, "sl->tx_req_skb->data == NULL\n");
-                       cf = (struct can_frame *)sl->tx_req_skb->data;
-                       /* SFF RTR CAN frame -> LIN header */
-                       if (cf->can_id & CAN_RTR_FLAG) {
-                               struct sllin_conf_entry *sce;
--                              netdev_dbg(sl->dev, "%s: RTR SFF CAN frame, ID = %x\n",
--                                      __func__, cf->can_id & LIN_ID_MASK);
-                               sce = &sl->linfr_cache[cf->can_id & LIN_ID_MASK];
-+                              netdev_dbg(sl->dev, "%s: RTR SFF CAN frame, ID = %x dlc=%d\n",
-+                                      __func__, cf->can_id & LIN_ID_MASK, sce->dlc);
-                               spin_lock_irqsave(&sl->linfr_lock, flags);
-                               /* Is there Slave response in linfr_cache to be sent? */
-@@ -1114,8 +1161,8 @@ static int sllin_kwthread(void *ptr)
-                               spin_unlock_irqrestore(&sl->linfr_lock, flags);
-                       } else { /* SFF NON-RTR CAN frame -> LIN header + LIN response */
--                              netdev_dbg(sl->dev, "%s: NON-RTR SFF CAN frame, ID = %x\n",
--                                      __func__, (int)cf->can_id & LIN_ID_MASK);
-+                              netdev_dbg(sl->dev, "%s: NON-RTR SFF CAN frame, ID = %x\n dlc=%d",
-+                                      __func__, (int)cf->can_id & LIN_ID_MASK, cf->can_dlc);
-                               lin_data = cf->data;
-                               lin_dlc = cf->can_dlc;
-@@ -1140,6 +1187,7 @@ static int sllin_kwthread(void *ptr)
-                       hrtimer_start(&sl->rx_timer,
-                               ktime_add(ktime_get(), sl->rx_timer_timeout),
-                               HRTIMER_MODE_ABS);
-+                      netdev_dbg(sl->dev, "sllin_kthread: SLSTATE finish\n");
-                       break;
-               case SLSTATE_BREAK_SENT:
-@@ -1654,3 +1702,4 @@ static void __exit sllin_exit(void)
- module_init(sllin_init);
- module_exit(sllin_exit);
-+
diff --git a/recipes-kernel/sllin/files/0003-Allow-recent-kernels-newer-4.11.x-to-build.patch b/recipes-kernel/sllin/files/0003-Allow-recent-kernels-newer-4.11.x-to-build.patch
deleted file mode 100644 (file)
index c8f2f92..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-From fcebb8f510bbb5c681f1f9af4506b4de241837dd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jan-Simon=20M=C3=B6ller?= <jsmoeller@linuxfoundation.org>
-Date: Wed, 31 Oct 2018 20:48:20 +0000
-Subject: [PATCH] Allow recent kernels newer 4.11.x to build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-API changes enforce porting.
-
-Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
----
- sllin/sllin.c | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/sllin/sllin.c b/sllin/sllin.c
-index 2969448..7e17127 100644
---- a/sllin/sllin.c
-+++ b/sllin/sllin.c
-@@ -56,7 +56,12 @@
- #include <linux/rtnetlink.h>
- #include <linux/if_arp.h>
- #include <linux/if_ether.h>
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,0)
- #include <linux/sched.h>
-+#else
-+#include <uapi/linux/sched/types.h>
-+#endif
- #include <linux/delay.h>
- #include <linux/init.h>
- #include <linux/can.h>
-@@ -447,7 +451,9 @@ static int sll_open(struct net_device *dev)
- static void sll_free_netdev(struct net_device *dev)
- {
-       int i = dev->base_addr;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,9)
-       free_netdev(dev);
-+#endif
-       sllin_devs[i] = NULL;
- }
-@@ -460,7 +466,12 @@ static const struct net_device_ops sll_netdev_ops = {
- static void sll_setup(struct net_device *dev)
- {
-       dev->netdev_ops         = &sll_netdev_ops;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,9)
-       dev->destructor         = sll_free_netdev;
-+#else
-+       dev->needs_free_netdev  = true;
-+        dev->priv_destructor    = sll_free_netdev;
-+#endif
-       dev->hard_header_len    = 0;
-       dev->addr_len           = 0;
-@@ -1685,8 +1696,10 @@ static void __exit sllin_exit(void)
-               sl = netdev_priv(dev);
-               if (sl->tty) {
-                       netdev_dbg(sl->dev, "tty discipline still running\n");
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,9)
-                       /* Intentionally leak the control block. */
-                       dev->destructor = NULL;
-+#endif
-               }
-               unregister_netdev(dev);
--- 
-2.13.7
-
diff --git a/recipes-kernel/sllin/files/0004-Fix-build-with-5.9-kernel.patch b/recipes-kernel/sllin/files/0004-Fix-build-with-5.9-kernel.patch
deleted file mode 100644 (file)
index f3bcda9..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-Use sched_set_fifo on newer kernels
-
-The 5.9 kernel removed the export of sched_setscheduler, use
-the new sched_set_fifo API if building on 5.9 or newer.  There
-is a slight difference in resulting priority level, the new
-API will yield a priority of 50 instead of the explicit value
-of 40 being used with sched_setscheduler, but this should not
-be an issue.
-
-Upstream-Status: Inappropriate [no upstream]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
-diff --git a/sllin/sllin.c b/sllin/sllin.c
-index 133d6e9..92c52ad 100644
---- a/sllin/sllin.c
-+++ b/sllin/sllin.c
-@@ -1059,14 +1059,20 @@ static int sllin_kwthread(void *ptr)
- {
-       struct sllin *sl = (struct sllin *)ptr;
-       struct tty_struct *tty = sl->tty;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
-       struct sched_param schparam = { .sched_priority = 40 };
-+#endif
-       int tx_bytes = 0; /* Used for Network statistics */
-       unsigned long flags;
-       int lin_id;
-       struct sllin_conf_entry *sce;
-       netdev_dbg(sl->dev, "sllin_kwthread started.\n");
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
-       sched_setscheduler(current, SCHED_FIFO, &schparam);
-+#else
-+      sched_set_fifo(current);
-+#endif
-       clear_bit(SLF_ERROR, &sl->flags);
-       sltty_change_speed(tty, sl->lin_baud);
-@@ -1274,8 +1280,8 @@ slstate_response_wait:
-                                       sl->lin_state = SLSTATE_RESPONSE_WAIT_BUS;
-                               }
-                       }
-+                      fallthrough;
--                      /* Be aware, no BREAK here */
-               case SLSTATE_RESPONSE_WAIT_BUS:
-                       if (sl->rx_cnt < sl->rx_expect)
-                               continue;
index e3e7432..e6af0be 100644 (file)
@@ -1,8 +1,6 @@
 [Unit]
 Description=LIN demo configuration
 ConditionPathExists=/dev/ttyUSB0
-After=afm-system-daemon.service
-Before=can-dev-mapping-helper.service
  
 [Service]
 Type=forking
index c7627ca..c97f0a2 100755 (executable)
@@ -3,7 +3,7 @@
 # Attach serial LIN->CAN bridge and set up LIN polling
 if [ -c /dev/ttyUSB0 ]; then
     sleep 1
-    /usr/bin/lin_config -c /etc/lin_config.conf -a sllin:/dev/ttyUSB0
+    /usr/bin/lin_config -m -c /etc/lin_config.conf -a sllin:/dev/ttyUSB0
     mkdir -p /run/lin_config/
     pidof lin_config > /run/lin_config/lin_config.pid
     sleep 1
diff --git a/recipes-kernel/sllin/sllin-demo.bb b/recipes-kernel/sllin/sllin-demo.bb
new file mode 100644 (file)
index 0000000..bd764be
--- /dev/null
@@ -0,0 +1,29 @@
+DESCRIPTION = "AGL IVI demo slLIN driver configuration"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+inherit allarch systemd
+
+SRC_URI = " \
+    file://sllin-demo.service \
+    file://start_lin_demo.sh \
+    file://lin_config.conf \
+"
+
+SYSTEMD_SERVICE:${PN} = "sllin-demo.service"
+
+do_install:append () {
+       install -d 644 ${D}/${bindir}
+       install -m 0755 ${WORKDIR}/start_lin_demo.sh ${D}/${bindir}/start_lin_demo.sh
+       install -d ${D}${systemd_system_unitdir}
+       install -m 0644 ${WORKDIR}/sllin-demo.service ${D}${systemd_system_unitdir}/
+       install -d ${D}${sysconfdir}
+       install -m 0644 ${WORKDIR}/lin_config.conf ${D}${sysconfdir}/
+}
+
+FILES:${PN} += " \
+    ${bindir}/start_lin_demo.sh \
+    ${sysconfdir}/lin_config.conf \
+"
+
+RDEPENDS:${PN} += "lin-config"
diff --git a/recipes-kernel/sllin/sllin.bb b/recipes-kernel/sllin/sllin.bb
deleted file mode 100644 (file)
index 2accf40..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-DESCRIPTION = "slLIN driver module"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://sllin.c;beginline=7;endline=37;md5=6408e14dba951f8cbe3c2a003a0d89d2"
-
-inherit module systemd
-
-DEPENDS = "virtual/kernel"
-
-SRC_URI = "git://github.com/trainman419/linux-lin.git;protocol=https;branch=master"
-SRCREV = "155d885e8ccc907a56f6c86c4b159fac27ef6fec"
-S = "${WORKDIR}/git/sllin"
-
-PV = "0.1+git${SRCPV}"
-
-SRC_URI:append = " \
-       file://0001_update_makefile.patch;pnum=2 \
-       file://0002_fix_null_operation_check.patch;pnum=2 \
-       file://0003-Allow-recent-kernels-newer-4.11.x-to-build.patch;pnum=2 \
-       file://0001-Disable-sllin-driver-debug-log.patch;pnum=2 \
-       file://0004-Fix-build-with-5.9-kernel.patch;pnum=2 \
-       file://0005-Fix-build-with-5.13-kernel.patch;pnum=2 \
-       file://0006-Fix-build-with-5.14-kernel.patch;pnum=2 \
-       file://sllin-demo.service \
-       file://start_lin_demo.sh \
-       file://lin_config.conf \
-"
-
-KERNEL_MODULE_AUTOLOAD:append = " sllin"
-KERNEL_MODULE_PROBECONF:append = " sllin"
-
-SLLINBAUDRATE ??= "9600"
-module_conf_sllin = "options sllin baudrate=${SLLINBAUDRATE}"
-
-SYSTEMD_SERVICE:${PN} = "sllin-demo.service"
-
-do_install:append () {
-       install -d 644 ${D}/${bindir}
-       install -m 755 ${WORKDIR}/start_lin_demo.sh ${D}/${bindir}/start_lin_demo.sh
-       install -d ${D}${systemd_system_unitdir}
-       install -m 0644 ${WORKDIR}/sllin-demo.service ${D}${systemd_system_unitdir}/
-       install -d ${D}${sysconfdir}
-       install -m 0644 ${WORKDIR}/lin_config.conf ${D}${sysconfdir}/
-}
-
-FILES:${PN} += "${bindir}/start_lin_demo.sh ${sysconfdir}/lin_config.conf"
-
-RDEPENDS:${PN} += "lin-config"
diff --git a/recipes-kernel/sllin/sllin/0002-5.4-less-than-110-fix.patch b/recipes-kernel/sllin/sllin/0002-5.4-less-than-110-fix.patch
new file mode 100644 (file)
index 0000000..8c13bfb
--- /dev/null
@@ -0,0 +1,25 @@
+Fix compilation against kernels < 5.4.110
+
+The fix to handle the backport of 4e096a18 to linux-5.4.y is a bit
+too broad, as it breaks building against kernels older than 5.4.110,
+add a version check to fix.
+
+Upstream-Status: pending
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+diff --git a/sllin/sllin.c b/sllin/sllin.c
+index b3f2636..a6fb120 100644
+--- a/sllin/sllin.c
++++ b/sllin/sllin.c
+@@ -1604,7 +1604,11 @@ static struct sllin *sll_alloc(dev_t line)
+       sl = netdev_priv(dev);
+       #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)
+               can_ml = (void *)sl + ALIGN(sizeof(*sl), NETDEV_ALIGN);
++      #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 110)
+               can_set_ml_priv(dev, can_ml);
++      #else
++              dev->ml_priv = can_ml;
++      #endif
+       #endif
+       /* Initialize channel control data */
+       sl->magic = SLLIN_MAGIC;
diff --git a/recipes-kernel/sllin/sllin_git.bb b/recipes-kernel/sllin/sllin_git.bb
new file mode 100644 (file)
index 0000000..f13bcd5
--- /dev/null
@@ -0,0 +1,22 @@
+DESCRIPTION = "slLIN driver module"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://sllin.c;beginline=7;endline=37;md5=6408e14dba951f8cbe3c2a003a0d89d2"
+
+inherit module
+
+DEPENDS = "virtual/kernel"
+
+SRC_URI = "git://github.com/lin-bus/linux-lin.git;protocol=https;branch=master \
+           file://0001-update-makefile.patch;pnum=2 \
+           file://0002-5.4-less-than-110-fix.patch;pnum=2 \
+"
+SRCREV = "beb057d7505e0c4d7c61f3f4927b76916ec00e88"
+S = "${WORKDIR}/git/sllin"
+
+PV = "0.1+git${SRCPV}"
+
+KERNEL_MODULE_AUTOLOAD:append = " sllin"
+KERNEL_MODULE_PROBECONF:append = " sllin"
+
+SLLINBAUDRATE ??= "9600"
+module_conf_sllin = "options sllin baudrate=${SLLINBAUDRATE}"
index b0db220..b12f376 100644 (file)
@@ -9,7 +9,8 @@ PACKAGES = "\
     packagegroup-agl-demo \
     "
 
-ALLOW_EMPTY:${PN} = "1"
+# HVAC and steering wheel demo dependency
+LIN_DRIVERS ??= " sllin"
 
 # Hook for demo platform configuration
 # ATM, only used to disable btwilink module on [MH]3ULCB + Kingfisher by default,
@@ -18,10 +19,6 @@ DEMO_ENABLE_BTWILINK ?= ""
 DEMO_PLATFORM_CONF = ""
 DEMO_PLATFORM_CONF:append:ulcb = "${@bb.utils.contains("DEMO_ENABLE_BTWILINK", "true", "", " btwilink-disable-conf", d)}"
 
-RDEPENDS:${PN} += "\
-    udisks2 \
-    "
-
 # fonts
 TTF_FONTS = " \
     ttf-bitstream-vera \
@@ -35,13 +32,14 @@ TTF_FONTS = " \
     source-han-sans-kr-fonts \
     "
 
-
 RDEPENDS:${PN} += " \
+    udisks2 \
     linux-firmware-ath9k \
     linux-firmware-ralink \
     can-utils \
     cannelloni \
     iproute2 \
+    ${LIN_DRIVERS} \
     ${DEMO_PLATFORM_CONF} \
     ${TTF_FONTS} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'webruntime', 'virtual/webruntime', '', d)} \
index ba6f2c4..a8c8f4f 100644 (file)
@@ -4,8 +4,8 @@ LIC_FILES_CHKSUM = "file://lin_config.c;beginline=4;endline=9;md5=196a29df19a30d
 
 DEPENDS += "libnl libxml2"
 
-SRC_URI = "git://github.com/trainman419/linux-lin.git;protocol=https;branch=master"
-SRCREV = "155d885e8ccc907a56f6c86c4b159fac27ef6fec"
+SRC_URI = "git://github.com/lin-bus/linux-lin.git;protocol=https;branch=master"
+SRCREV = "beb057d7505e0c4d7c61f3f4927b76916ec00e88"
 S = "${WORKDIR}/git/lin_config/src"
 
 SRC_URI:append = " \