<div dir="ltr">The following patchset has only the port commits, the commits to import<div>are pushed to Github and the links are as follows:</div><div>[PATCH 1/6] : <a href="https://github.com/thelunatic/rtems-libbsd/commit/fa8900b30f5b41611ddc16e5b386a6b8b443675a">https://github.com/thelunatic/rtems-libbsd/commit/fa8900b30f5b41611ddc16e5b386a6b8b443675a</a></div><div>[PATCH 3/6] : <a href="https://github.com/thelunatic/rtems-libbsd/commit/4f1cde1ef64e4a401cf4acd71bc5e681628fb3ed">https://github.com/thelunatic/rtems-libbsd/commit/4f1cde1ef64e4a401cf4acd71bc5e681628fb3ed</a></div><div>[PATCH 5/6] : <a href="https://github.com/thelunatic/rtems-libbsd/commit/efe23128b1cf39bdd75040067c95d87c05ae7f00">https://github.com/thelunatic/rtems-libbsd/commit/efe23128b1cf39bdd75040067c95d87c05ae7f00</a> </div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jun 30, 2019 at 8:59 PM Vijay Kumar Banerjee <<a href="mailto:vijaykumar9597@gmail.com">vijaykumar9597@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">---<br>
 Makefile.todo                                 | 27 ++++++<br>
 buildset/default.ini                          |  1 +<br>
 libbsd.py                                     | 46 ++++++++++<br>
 rtemsbsd/include/bsp/nexus-devices.h          |  1 +<br>
 .../machine/rtems-bsd-kernel-namespace.h      | 65 +++++++++++++<br>
 rtemsbsd/include/rtems/bsd/local/clknode_if.h | 92 +++++++++++++++++++<br>
 rtemsbsd/include/rtems/bsd/local/hdmi_if.h    | 71 ++++++++++++++<br>
 .../include/rtems/bsd/local/opt_videomode.h   |  0<br>
 rtemsbsd/local/clknode_if.c                   | 40 ++++++++<br>
 rtemsbsd/local/hdmi_if.c                      | 35 +++++++<br>
 10 files changed, 378 insertions(+)<br>
 create mode 100644 rtemsbsd/include/rtems/bsd/local/clknode_if.h<br>
 create mode 100644 rtemsbsd/include/rtems/bsd/local/hdmi_if.h<br>
 create mode 100644 rtemsbsd/include/rtems/bsd/local/opt_videomode.h<br>
 create mode 100644 rtemsbsd/local/clknode_if.c<br>
 create mode 100644 rtemsbsd/local/hdmi_if.c<br>
<br>
diff --git a/Makefile.todo b/Makefile.todo<br>
index 42bedc15..358d6956 100644<br>
--- a/Makefile.todo<br>
+++ b/Makefile.todo<br>
@@ -47,6 +47,10 @@ GENERATED += $(LOCAL_INC)/gpiobus_if.h<br>
 GENERATED += $(LOCAL_SRC)/gpiobus_if.c<br>
 GENERATED += $(LOCAL_INC)/iicbus_if.h<br>
 GENERATED += $(LOCAL_SRC)/iicbus_if.c<br>
+GENERATED += $(LOCAL_INC)/clknode_if.h<br>
+GENERATED += $(LOCAL_SRC)/clknode_if.c<br>
+GENERATED += $(LOCAL_INC)/hdmi_if.h<br>
+GENERATED += $(LOCAL_SRC)/hdmi_if.c<br>
 GENERATED += rtemsbsd/include/machine/rtems-bsd-regdomain.h<br>
 GENERATED += rtemsbsd/rtems/rtems-bsd-regdomain.c<br>
<br>
@@ -239,6 +243,29 @@ $(LOCAL_SRC)/sdhci_if.c: $(FREEBSD_SRC)/sys/dev/sdhci/sdhci_if.m<br>
            -e 's|#include "sdhci_if.h"|#include <rtems/bsd/local/sdhci_if.h>|'<br>
        mv sdhci_if.c $@<br>
<br>
+<br>
+$(LOCAL_INC)/clknode_if.h: $(FREEBSD_SRC)/sys/dev/extres/clk/clknode_if.m<br>
+       awk -f $(TOOLS)/makeobjops.awk $< -h<br>
+       mv clknode_if.h $@<br>
+<br>
+$(LOCAL_SRC)/clknode_if.c: $(FREEBSD_SRC)/sys/dev/extres/clk/clknode_if.m<br>
+       awk -f $(TOOLS)/makeobjops.awk $< -c<br>
+       sed -i clknode_if.c \<br>
+           -e '1 i\#include <machine/rtems-bsd-kernel-space.h>\n' \<br>
+           -e 's|#include "clknode_if.h"|#include <rtems/bsd/local/clknode_if.h>|'<br>
+       mv clknode_if.c $@<br>
+<br>
+$(LOCAL_INC)/hdmi_if.h: $(FREEBSD_SRC)/sys/dev/hdmi/hdmi_if.m<br>
+       awk -f $(TOOLS)/makeobjops.awk $< -h<br>
+       mv hdmi_if.h $@<br>
+<br>
+$(LOCAL_SRC)/hdmi_if.c: $(FREEBSD_SRC)/sys/dev/hdmi/hdmi_if.m<br>
+       awk -f $(TOOLS)/makeobjops.awk $< -c<br>
+       sed -i hdmi_if.c \<br>
+           -e '1 i\#include <machine/rtems-bsd-kernel-space.h>\n' \<br>
+           -e 's|#include "hdmi_if.h"|#include <rtems/bsd/local/hdmi_if.h>|'<br>
+       mv hdmi_if.c $@<br>
+<br>
 $(LOCAL_SRC)/gpio_if.c: $(FREEBSD_SRC)/sys/dev/gpio/gpio_if.m<br>
        awk -f $(TOOLS)/makeobjops.awk $< -c<br>
        mv gpio_if.c $@<br>
diff --git a/buildset/default.ini b/buildset/default.ini<br>
index 4acb2368..1d052a48 100644<br>
--- a/buildset/default.ini<br>
+++ b/buildset/default.ini<br>
@@ -37,6 +37,7 @@ dev_usb_storage = on<br>
 dev_usb_wlan = off<br>
 dev_wlan_rtwn = off<br>
 iic = on<br>
+display = on<br>
 dhcpcd = on<br>
 dpaa = on<br>
 evdev = on<br>
diff --git a/libbsd.py b/libbsd.py<br>
index 12d4c2ed..b21ddccf 100644<br>
--- a/libbsd.py<br>
+++ b/libbsd.py<br>
@@ -777,6 +777,51 @@ class iic(builder.Module):<br>
             mm.generator['source']()<br>
         )<br>
<br>
+<br>
+#<br>
+# DISPLAY<br>
+#<br>
+class display(builder.Module):<br>
+<br>
+    def __init__(self, manager):<br>
+        super(display, self).__init__(manager, type(self).__name__)<br>
+<br>
+    def generate(self):<br>
+        mm = self.manager<br>
+        self.addKernelSpaceHeaderFiles(<br>
+            [<br>
+                'sys/dev/extres/clk/clk.h',<br>
+                'sys/dev/hdmi/dwc_hdmi.h',<br>
+                'sys/dev/hdmi/dwc_hdmireg.h',<br>
+                'sys/dev/videomode/videomode.h',<br>
+                'sys/dev/videomode/edidvar.h',<br>
+                'sys/dev/videomode/edidreg.h',<br>
+                'sys/dev/videomode/ediddevs.h',<br>
+                'sys/dev/videomode/ediddevs_data.h',<br>
+                'sys/dev/videomode/vesagtf.h',<br>
+            ]<br>
+        )<br>
+        self.addKernelSpaceSourceFiles(<br>
+            [<br>
+                'sys/arm/ti/am335x/tda19988.c',<br>
+                'sys/dev/hdmi/dwc_hdmi.c',<br>
+                'sys/dev/hdmi/dwc_hdmi_fdt.c',<br>
+                'sys/dev/extres/clk/clk.c',<br>
+                'sys/dev/videomode/pickmode.c',<br>
+                'sys/dev/videomode/edid.c',<br>
+                'sys/dev/videomode/vesagtf.c',<br>
+                'sys/dev/videomode/videomode.c',<br>
+            ],<br>
+            mm.generator['source']()<br>
+        )<br>
+        self.addRTEMSSourceFiles(<br>
+            [<br>
+                'local/clknode_if.c',<br>
+                'local/hdmi_if.c',<br>
+            ],<br>
+            mm.generator['source']()<br>
+        )<br>
+<br>
 #<br>
 # USB<br>
 #<br>
@@ -5134,6 +5179,7 @@ def load(mm):<br>
     mm.addModule(dev_input(mm))<br>
     mm.addModule(evdev(mm))<br>
     mm.addModule(iic(mm))<br>
+    mm.addModule(display(mm))<br>
<br>
     mm.addModule(dev_usb(mm))<br>
     mm.addModule(dev_usb_controller(mm))<br>
diff --git a/rtemsbsd/include/bsp/nexus-devices.h b/rtemsbsd/include/bsp/nexus-devices.h<br>
index 97f6d2b2..3ec136ae 100644<br>
--- a/rtemsbsd/include/bsp/nexus-devices.h<br>
+++ b/rtemsbsd/include/bsp/nexus-devices.h<br>
@@ -64,6 +64,7 @@ SYSINIT_DRIVER_REFERENCE(ukphy, miibus);<br>
 SYSINIT_DRIVER_REFERENCE(rtems_i2c, simplebus);<br>
 SYSINIT_DRIVER_REFERENCE(ofw_iicbus, rtems_i2c);<br>
 SYSINIT_DRIVER_REFERENCE(iic, iicbus);<br>
+SYSINIT_DRIVER_REFERENCE(tda, iicbus);<br>
 SYSINIT_DRIVER_REFERENCE(iicbus, rtems_i2c);<br>
 #ifdef RTEMS_BSD_MODULE_NET80211<br>
 SYSINIT_DRIVER_REFERENCE(rtwn_usb, uhub);<br>
diff --git a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h<br>
index 235c9886..bef9f411 100644<br>
--- a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h<br>
+++ b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h<br>
@@ -563,7 +563,53 @@<br>
 #define        clean_unrhdrl _bsd_clean_unrhdrl<br>
 #define        ClearCheckNewLink _bsd_ClearCheckNewLink<br>
 #define        clear_unrhdr _bsd_clear_unrhdr<br>
+#define        clk_disable _bsd_clk_disable<br>
+#define        clkdom_create _bsd_clkdom_create<br>
+#define        clkdom_dump _bsd_clkdom_dump<br>
+#define        clkdom_finit _bsd_clkdom_finit<br>
+#define        clkdom_get_by_dev _bsd_clkdom_get_by_dev<br>
+#define        clkdom_set_ofw_mapper _bsd_clkdom_set_ofw_mapper<br>
+#define        clkdom_unlock _bsd_clkdom_unlock<br>
+#define        clkdom_xlock _bsd_clkdom_xlock<br>
+#define        clk_enable _bsd_clk_enable<br>
+#define        clk_get_by_id _bsd_clk_get_by_id<br>
+#define        clk_get_by_name _bsd_clk_get_by_name<br>
+#define        clk_get_by_ofw_index _bsd_clk_get_by_ofw_index<br>
+#define        clk_get_by_ofw_index_prop _bsd_clk_get_by_ofw_index_prop<br>
+#define        clk_get_by_ofw_name _bsd_clk_get_by_ofw_name<br>
+#define        clk_get_freq _bsd_clk_get_freq<br>
+#define        clk_get_name _bsd_clk_get_name<br>
+#define        clk_get_parent _bsd_clk_get_parent<br>
 #define        clk_intr_event _bsd_clk_intr_event<br>
+#define        clknode_class _bsd_clknode_class<br>
+#define        clknode_create _bsd_clknode_create<br>
+#define        clknode_disable _bsd_clknode_disable<br>
+#define        clknode_enable _bsd_clknode_enable<br>
+#define        clknode_find_by_id _bsd_clknode_find_by_id<br>
+#define        clknode_find_by_name _bsd_clknode_find_by_name<br>
+#define        clknode_get_device _bsd_clknode_get_device<br>
+#define        clknode_get_flags _bsd_clknode_get_flags<br>
+#define        clknode_get_freq _bsd_clknode_get_freq<br>
+#define        clknode_get_name _bsd_clknode_get_name<br>
+#define        clknode_get_parent _bsd_clknode_get_parent<br>
+#define        clknode_get_parent_idx _bsd_clknode_get_parent_idx<br>
+#define        clknode_get_parent_names _bsd_clknode_get_parent_names<br>
+#define        clknode_get_parents_num _bsd_clknode_get_parents_num<br>
+#define        clknode_get_softc _bsd_clknode_get_softc<br>
+#define        clknode_init_parent_idx _bsd_clknode_init_parent_idx<br>
+#define        clknode_register _bsd_clknode_register<br>
+#define        clknode_set_freq _bsd_clknode_set_freq<br>
+#define        clknode_set_parent_by_idx _bsd_clknode_set_parent_by_idx<br>
+#define        clknode_set_parent_by_name _bsd_clknode_set_parent_by_name<br>
+#define        clknode_stop _bsd_clknode_stop<br>
+#define        clk_parse_ofw_clk_name _bsd_clk_parse_ofw_clk_name<br>
+#define        clk_parse_ofw_out_names _bsd_clk_parse_ofw_out_names<br>
+#define        clk_release _bsd_clk_release<br>
+#define        clk_set_assigned _bsd_clk_set_assigned<br>
+#define        clk_set_freq _bsd_clk_set_freq<br>
+#define        clk_set_parent_by_clk _bsd_clk_set_parent_by_clk<br>
+#define        clk_stop _bsd_clk_stop<br>
+#define        clk_test_freq _bsd_clk_test_freq<br>
 #define        comp_algo_deflate _bsd_comp_algo_deflate<br>
 #define        comp_algorithm_lookup _bsd_comp_algorithm_lookup<br>
 #define        config_intrhook_disestablish _bsd_config_intrhook_disestablish<br>
@@ -775,6 +821,9 @@<br>
 #define        drbr_needs_enqueue_drv _bsd_drbr_needs_enqueue_drv<br>
 #define        driver_module_handler _bsd_driver_module_handler<br>
 #define        dwc_driver _bsd_dwc_driver<br>
+#define        dwc_hdmi_get_edid _bsd_dwc_hdmi_get_edid<br>
+#define        dwc_hdmi_init _bsd_dwc_hdmi_init<br>
+#define        dwc_hdmi_set_videomode _bsd_dwc_hdmi_set_videomode<br>
 #define        dwc_otg_attach _bsd_dwc_otg_attach<br>
 #define        dwc_otg_detach _bsd_dwc_otg_detach<br>
 #define        dwc_otg_driver _bsd_dwc_otg_driver<br>
@@ -1087,6 +1136,13 @@<br>
 #define        e1000_write_vfta_generic _bsd_e1000_write_vfta_generic<br>
 #define        e1000_write_vfta_i350 _bsd_e1000_write_vfta_i350<br>
 #define        e1000_write_xmdio_reg _bsd_e1000_write_xmdio_reg<br>
+#define        edid_is_valid _bsd_edid_is_valid<br>
+#define        edid_nproducts _bsd_edid_nproducts<br>
+#define        edid_nvendors _bsd_edid_nvendors<br>
+#define        edid_parse _bsd_edid_parse<br>
+#define        edid_print _bsd_edid_print<br>
+#define        edid_products _bsd_edid_products<br>
+#define        edid_vendors _bsd_edid_vendors<br>
 #define        ehci_detach _bsd_ehci_detach<br>
 #define        ehci_get_port_speed_hostc _bsd_ehci_get_port_speed_hostc<br>
 #define        ehci_get_port_speed_portsc _bsd_ehci_get_port_speed_portsc<br>
@@ -2732,6 +2788,7 @@<br>
 #define        m_checkalignment _bsd_m_checkalignment<br>
 #define        m_clget _bsd_m_clget<br>
 #define        m_cljget _bsd_m_cljget<br>
+#define        M_CLOCK _bsd_M_CLOCK<br>
 #define        m_collapse _bsd_m_collapse<br>
 #define        m_copyback _bsd_m_copyback<br>
 #define        m_copydata _bsd_m_copydata<br>
@@ -3442,6 +3499,8 @@<br>
 #define        pgsigio _bsd_pgsigio<br>
 #define        phashinit _bsd_phashinit<br>
 #define        phashinit_flags _bsd_phashinit_flags<br>
+#define        pick_mode_by_dotclock _bsd_pick_mode_by_dotclock<br>
+#define        pick_mode_by_ref _bsd_pick_mode_by_ref<br>
 #define        pipe_dtor _bsd_pipe_dtor<br>
 #define        pipe_named_ctor _bsd_pipe_named_ctor<br>
 #define        pipeselwakeup _bsd_pipeselwakeup<br>
@@ -4614,6 +4673,7 @@<br>
 #define        soreceive_generic _bsd_soreceive_generic<br>
 #define        soreserve _bsd_soreserve<br>
 #define        sorflush _bsd_sorflush<br>
+#define        sort_modes _bsd_sort_modes<br>
 #define        sosend _bsd_sosend<br>
 #define        sosend_dgram _bsd_sosend_dgram<br>
 #define        sosend_generic _bsd_sosend_generic<br>
@@ -4722,6 +4782,7 @@<br>
 #define        sysctl_handle_uma_zone_max _bsd_sysctl_handle_uma_zone_max<br>
 #define        sysctl___hw _bsd_sysctl___hw<br>
 #define        sysctl___hw_bus _bsd_sysctl___hw_bus<br>
+#define        sysctl___hw_clock _bsd_sysctl___hw_clock<br>
 #define        sysctl___hw_fdt _bsd_sysctl___hw_fdt<br>
 #define        sysctl___hw_pci _bsd_sysctl___hw_pci<br>
 #define        sysctl___hw_sdhci _bsd_sysctl___hw_sdhci<br>
@@ -5450,6 +5511,10 @@<br>
 #define        uuid_ether_add _bsd_uuid_ether_add<br>
 #define        uuid_ether_del _bsd_uuid_ether_del<br>
 #define        vht80_chan_ranges _bsd_vht80_chan_ranges<br>
+#define        vesagtf_mode _bsd_vesagtf_mode<br>
+#define        vesagtf_mode_params _bsd_vesagtf_mode_params<br>
+#define        videomode_count _bsd_videomode_count<br>
+#define        videomode_list _bsd_videomode_list<br>
 #define        vlan_cookie_p _bsd_vlan_cookie_p<br>
 #define        vlan_devat_p _bsd_vlan_devat_p<br>
 #define        vlan_input_p _bsd_vlan_input_p<br>
diff --git a/rtemsbsd/include/rtems/bsd/local/clknode_if.h b/rtemsbsd/include/rtems/bsd/local/clknode_if.h<br>
new file mode 100644<br>
index 00000000..97f4c956<br>
--- /dev/null<br>
+++ b/rtemsbsd/include/rtems/bsd/local/clknode_if.h<br>
@@ -0,0 +1,92 @@<br>
+/*<br>
+ * This file is @generated automatically.<br>
+ * Do not modify anything in here by hand.<br>
+ *<br>
+ * Created from source file<br>
+ *   freebsd-org/sys/dev/extres/clk/clknode_if.m<br>
+ * with<br>
+ *   makeobjops.awk<br>
+ *<br>
+ * See the source file for legal information<br>
+ */<br>
+<br>
+<br>
+#ifndef _clknode_if_h_<br>
+#define _clknode_if_h_<br>
+<br>
+<br>
+struct clknode;<br>
+<br>
+/** @brief Unique descriptor for the CLKNODE_INIT() method */<br>
+extern struct kobjop_desc clknode_init_desc;<br>
+/** @brief A function implementing the CLKNODE_INIT() method */<br>
+typedef int clknode_init_t(struct clknode *clk, device_t dev);<br>
+<br>
+static __inline int CLKNODE_INIT(struct clknode *clk, device_t dev)<br>
+{<br>
+       kobjop_t _m;<br>
+       int rc;<br>
+       KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_init);<br>
+       rc = ((clknode_init_t *) _m)(clk, dev);<br>
+       return (rc);<br>
+}<br>
+<br>
+/** @brief Unique descriptor for the CLKNODE_RECALC_FREQ() method */<br>
+extern struct kobjop_desc clknode_recalc_freq_desc;<br>
+/** @brief A function implementing the CLKNODE_RECALC_FREQ() method */<br>
+typedef int clknode_recalc_freq_t(struct clknode *clk, uint64_t *freq);<br>
+<br>
+static __inline int CLKNODE_RECALC_FREQ(struct clknode *clk, uint64_t *freq)<br>
+{<br>
+       kobjop_t _m;<br>
+       int rc;<br>
+       KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_recalc_freq);<br>
+       rc = ((clknode_recalc_freq_t *) _m)(clk, freq);<br>
+       return (rc);<br>
+}<br>
+<br>
+/** @brief Unique descriptor for the CLKNODE_SET_FREQ() method */<br>
+extern struct kobjop_desc clknode_set_freq_desc;<br>
+/** @brief A function implementing the CLKNODE_SET_FREQ() method */<br>
+typedef int clknode_set_freq_t(struct clknode *clk, uint64_t fin,<br>
+                               uint64_t *fout, int flags, int *done);<br>
+<br>
+static __inline int CLKNODE_SET_FREQ(struct clknode *clk, uint64_t fin,<br>
+                                     uint64_t *fout, int flags, int *done)<br>
+{<br>
+       kobjop_t _m;<br>
+       int rc;<br>
+       KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_set_freq);<br>
+       rc = ((clknode_set_freq_t *) _m)(clk, fin, fout, flags, done);<br>
+       return (rc);<br>
+}<br>
+<br>
+/** @brief Unique descriptor for the CLKNODE_SET_GATE() method */<br>
+extern struct kobjop_desc clknode_set_gate_desc;<br>
+/** @brief A function implementing the CLKNODE_SET_GATE() method */<br>
+typedef int clknode_set_gate_t(struct clknode *clk, bool enable);<br>
+<br>
+static __inline int CLKNODE_SET_GATE(struct clknode *clk, bool enable)<br>
+{<br>
+       kobjop_t _m;<br>
+       int rc;<br>
+       KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_set_gate);<br>
+       rc = ((clknode_set_gate_t *) _m)(clk, enable);<br>
+       return (rc);<br>
+}<br>
+<br>
+/** @brief Unique descriptor for the CLKNODE_SET_MUX() method */<br>
+extern struct kobjop_desc clknode_set_mux_desc;<br>
+/** @brief A function implementing the CLKNODE_SET_MUX() method */<br>
+typedef int clknode_set_mux_t(struct clknode *clk, int idx);<br>
+<br>
+static __inline int CLKNODE_SET_MUX(struct clknode *clk, int idx)<br>
+{<br>
+       kobjop_t _m;<br>
+       int rc;<br>
+       KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_set_mux);<br>
+       rc = ((clknode_set_mux_t *) _m)(clk, idx);<br>
+       return (rc);<br>
+}<br>
+<br>
+#endif /* _clknode_if_h_ */<br>
diff --git a/rtemsbsd/include/rtems/bsd/local/hdmi_if.h b/rtemsbsd/include/rtems/bsd/local/hdmi_if.h<br>
new file mode 100644<br>
index 00000000..fc23c801<br>
--- /dev/null<br>
+++ b/rtemsbsd/include/rtems/bsd/local/hdmi_if.h<br>
@@ -0,0 +1,71 @@<br>
+/*<br>
+ * This file is @generated automatically.<br>
+ * Do not modify anything in here by hand.<br>
+ *<br>
+ * Created from source file<br>
+ *   freebsd-org/sys/dev/hdmi/hdmi_if.m<br>
+ * with<br>
+ *   makeobjops.awk<br>
+ *<br>
+ * See the source file for legal information<br>
+ */<br>
+<br>
+<br>
+#ifndef _hdmi_if_h_<br>
+#define _hdmi_if_h_<br>
+<br>
+<br>
+#include <sys/eventhandler.h><br>
+<br>
+typedef void (*hdmi_event_hook)(void *, device_t, int);<br>
+EVENTHANDLER_DECLARE(hdmi_event, hdmi_event_hook);<br>
+<br>
+#define HDMI_EVENT_CONNECTED   0<br>
+<br>
+/** @brief Unique descriptor for the HDMI_GET_EDID() method */<br>
+extern struct kobjop_desc hdmi_get_edid_desc;<br>
+/** @brief A function implementing the HDMI_GET_EDID() method */<br>
+typedef int hdmi_get_edid_t(device_t dev, uint8_t **edid,<br>
+                            uint32_t *edid_length);<br>
+<br>
+static __inline int HDMI_GET_EDID(device_t dev, uint8_t **edid,<br>
+                                  uint32_t *edid_length)<br>
+{<br>
+       kobjop_t _m;<br>
+       int rc;<br>
+       KOBJOPLOOKUP(((kobj_t)dev)->ops,hdmi_get_edid);<br>
+       rc = ((hdmi_get_edid_t *) _m)(dev, edid, edid_length);<br>
+       return (rc);<br>
+}<br>
+<br>
+/** @brief Unique descriptor for the HDMI_SET_VIDEOMODE() method */<br>
+extern struct kobjop_desc hdmi_set_videomode_desc;<br>
+/** @brief A function implementing the HDMI_SET_VIDEOMODE() method */<br>
+typedef int hdmi_set_videomode_t(device_t dev,<br>
+                                 const struct videomode *videomode);<br>
+<br>
+static __inline int HDMI_SET_VIDEOMODE(device_t dev,<br>
+                                       const struct videomode *videomode)<br>
+{<br>
+       kobjop_t _m;<br>
+       int rc;<br>
+       KOBJOPLOOKUP(((kobj_t)dev)->ops,hdmi_set_videomode);<br>
+       rc = ((hdmi_set_videomode_t *) _m)(dev, videomode);<br>
+       return (rc);<br>
+}<br>
+<br>
+/** @brief Unique descriptor for the HDMI_ENABLE() method */<br>
+extern struct kobjop_desc hdmi_enable_desc;<br>
+/** @brief A function implementing the HDMI_ENABLE() method */<br>
+typedef int hdmi_enable_t(device_t dev, int onoff);<br>
+<br>
+static __inline int HDMI_ENABLE(device_t dev, int onoff)<br>
+{<br>
+       kobjop_t _m;<br>
+       int rc;<br>
+       KOBJOPLOOKUP(((kobj_t)dev)->ops,hdmi_enable);<br>
+       rc = ((hdmi_enable_t *) _m)(dev, onoff);<br>
+       return (rc);<br>
+}<br>
+<br>
+#endif /* _hdmi_if_h_ */<br>
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_videomode.h b/rtemsbsd/include/rtems/bsd/local/opt_videomode.h<br>
new file mode 100644<br>
index 00000000..e69de29b<br>
diff --git a/rtemsbsd/local/clknode_if.c b/rtemsbsd/local/clknode_if.c<br>
new file mode 100644<br>
index 00000000..6f1c0ba3<br>
--- /dev/null<br>
+++ b/rtemsbsd/local/clknode_if.c<br>
@@ -0,0 +1,40 @@<br>
+#include <machine/rtems-bsd-kernel-space.h><br>
+<br>
+/*<br>
+ * This file is @generated automatically.<br>
+ * Do not modify anything in here by hand.<br>
+ *<br>
+ * Created from source file<br>
+ *   freebsd-org/sys/dev/extres/clk/clknode_if.m<br>
+ * with<br>
+ *   makeobjops.awk<br>
+ *<br>
+ * See the source file for legal information<br>
+ */<br>
+<br>
+#include <sys/param.h><br>
+#include <sys/queue.h><br>
+#include <sys/kernel.h><br>
+#include <sys/kobj.h><br>
+#include <rtems/bsd/local/clknode_if.h><br>
+<br>
+struct kobjop_desc clknode_init_desc = {<br>
+       0, { &clknode_init_desc, (kobjop_t)kobj_error_method }<br>
+};<br>
+<br>
+struct kobjop_desc clknode_recalc_freq_desc = {<br>
+       0, { &clknode_recalc_freq_desc, (kobjop_t)kobj_error_method }<br>
+};<br>
+<br>
+struct kobjop_desc clknode_set_freq_desc = {<br>
+       0, { &clknode_set_freq_desc, (kobjop_t)kobj_error_method }<br>
+};<br>
+<br>
+struct kobjop_desc clknode_set_gate_desc = {<br>
+       0, { &clknode_set_gate_desc, (kobjop_t)kobj_error_method }<br>
+};<br>
+<br>
+struct kobjop_desc clknode_set_mux_desc = {<br>
+       0, { &clknode_set_mux_desc, (kobjop_t)kobj_error_method }<br>
+};<br>
+<br>
diff --git a/rtemsbsd/local/hdmi_if.c b/rtemsbsd/local/hdmi_if.c<br>
new file mode 100644<br>
index 00000000..847f7d4d<br>
--- /dev/null<br>
+++ b/rtemsbsd/local/hdmi_if.c<br>
@@ -0,0 +1,35 @@<br>
+#include <machine/rtems-bsd-kernel-space.h><br>
+<br>
+/*<br>
+ * This file is @generated automatically.<br>
+ * Do not modify anything in here by hand.<br>
+ *<br>
+ * Created from source file<br>
+ *   freebsd-org/sys/dev/hdmi/hdmi_if.m<br>
+ * with<br>
+ *   makeobjops.awk<br>
+ *<br>
+ * See the source file for legal information<br>
+ */<br>
+<br>
+#include <sys/param.h><br>
+#include <sys/queue.h><br>
+#include <sys/kernel.h><br>
+#include <sys/kobj.h><br>
+#include <sys/bus.h><br>
+#include <dev/videomode/videomode.h><br>
+#include <dev/videomode/edidvar.h><br>
+#include <rtems/bsd/local/hdmi_if.h><br>
+<br>
+struct kobjop_desc hdmi_get_edid_desc = {<br>
+       0, { &hdmi_get_edid_desc, (kobjop_t)kobj_error_method }<br>
+};<br>
+<br>
+struct kobjop_desc hdmi_set_videomode_desc = {<br>
+       0, { &hdmi_set_videomode_desc, (kobjop_t)kobj_error_method }<br>
+};<br>
+<br>
+struct kobjop_desc hdmi_enable_desc = {<br>
+       0, { &hdmi_enable_desc, (kobjop_t)kobj_error_method }<br>
+};<br>
+<br>
-- <br>
2.20.1<br>
<br>
</blockquote></div>