Merge pull request #220 from vpeter4/imx6-cec-patch

libcec: update imx6 patch to work with p8-platform
This commit is contained in:
Lukas Rusak 2016-04-25 23:52:44 -07:00
commit f7d6452faf

View File

@ -1,3 +1,8 @@
From 3bd000096d6c0d9fb84cb5476b4dcae7e12f17df Mon Sep 17 00:00:00 2001
From: Peter Vicman <peter.vicman@gmail.com>
Date: Sun, 24 Apr 2016 14:26:55 +0200
Subject: [PATCH] imx support (rebased again)
From a7f3315333c1a79259a763c6542a6cd71855b357 Mon Sep 17 00:00:00 2001 From a7f3315333c1a79259a763c6542a6cd71855b357 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca> From: Stefan Saraev <stefan@saraev.ca>
Date: Thu, 7 May 2015 11:35:04 +0300 Date: Thu, 7 May 2015 11:35:04 +0300
@ -24,7 +29,7 @@ note. I am NOT the author of the patch. just rebased it
create mode 100644 src/libcec/adapter/IMX/IMXCECAdapterDetection.h create mode 100644 src/libcec/adapter/IMX/IMXCECAdapterDetection.h
diff --git a/include/cectypes.h b/include/cectypes.h diff --git a/include/cectypes.h b/include/cectypes.h
index acff259..0cfee8c 100644 index 0fdd48e..e28c8df 100644
--- a/include/cectypes.h --- a/include/cectypes.h
+++ b/include/cectypes.h +++ b/include/cectypes.h
@@ -309,6 +309,17 @@ namespace CEC { @@ -309,6 +309,17 @@ namespace CEC {
@ -45,7 +50,7 @@ index acff259..0cfee8c 100644
* Mimimum client version * Mimimum client version
*/ */
#define CEC_MIN_LIB_VERSION 3 #define CEC_MIN_LIB_VERSION 3
@@ -876,7 +887,8 @@ typedef enum cec_adapter_type @@ -877,7 +888,8 @@ typedef enum cec_adapter_type
ADAPTERTYPE_P8_DAUGHTERBOARD = 0x2, ADAPTERTYPE_P8_DAUGHTERBOARD = 0x2,
ADAPTERTYPE_RPI = 0x100, ADAPTERTYPE_RPI = 0x100,
ADAPTERTYPE_TDA995x = 0x200, ADAPTERTYPE_TDA995x = 0x200,
@ -56,10 +61,10 @@ index acff259..0cfee8c 100644
/** force exporting through swig */ /** force exporting through swig */
diff --git a/src/libcec/CECTypeUtils.h b/src/libcec/CECTypeUtils.h diff --git a/src/libcec/CECTypeUtils.h b/src/libcec/CECTypeUtils.h
index fd8046a..48cb215 100644 index 0d0cf17..f6c818a 100644
--- a/src/libcec/CECTypeUtils.h --- a/src/libcec/CECTypeUtils.h
+++ b/src/libcec/CECTypeUtils.h +++ b/src/libcec/CECTypeUtils.h
@@ -765,6 +765,8 @@ namespace CEC @@ -766,6 +766,8 @@ namespace CEC
return "Raspberry Pi"; return "Raspberry Pi";
case ADAPTERTYPE_TDA995x: case ADAPTERTYPE_TDA995x:
return "TDA995x"; return "TDA995x";
@ -128,7 +133,7 @@ index da05725..92e378b 100644
} }
diff --git a/src/libcec/adapter/IMX/AdapterMessageQueue.h b/src/libcec/adapter/IMX/AdapterMessageQueue.h diff --git a/src/libcec/adapter/IMX/AdapterMessageQueue.h b/src/libcec/adapter/IMX/AdapterMessageQueue.h
new file mode 100644 new file mode 100644
index 0000000..af6742c index 0000000..7749874
--- /dev/null --- /dev/null
+++ b/src/libcec/adapter/IMX/AdapterMessageQueue.h +++ b/src/libcec/adapter/IMX/AdapterMessageQueue.h
@@ -0,0 +1,134 @@ @@ -0,0 +1,134 @@
@ -165,11 +170,11 @@ index 0000000..af6742c
+ * http://www.pulse-eight.net/ + * http://www.pulse-eight.net/
+ */ + */
+ +
+#include "platform/threads/mutex.h" +#include "p8-platform/threads/mutex.h"
+ +
+namespace CEC +namespace CEC
+{ +{
+ using namespace PLATFORM; + using namespace P8PLATFORM;
+ +
+ class CAdapterMessageQueueEntry + class CAdapterMessageQueueEntry
+ { + {
@ -258,8 +263,8 @@ index 0000000..af6742c
+ +
+ private: + private:
+ bool m_bWaiting; /**< true while a thread is waiting or when it hasn't started waiting yet */ + bool m_bWaiting; /**< true while a thread is waiting or when it hasn't started waiting yet */
+ PLATFORM::CCondition<bool> m_condition; /**< the condition to wait on */ + P8PLATFORM::CCondition<bool> m_condition; /**< the condition to wait on */
+ PLATFORM::CMutex m_mutex; /**< mutex for changes to this class */ + P8PLATFORM::CMutex m_mutex; /**< mutex for changes to this class */
+ uint32_t m_hash; + uint32_t m_hash;
+ uint32_t m_retval; + uint32_t m_retval;
+ bool m_bSucceeded; + bool m_bSucceeded;
@ -268,7 +273,7 @@ index 0000000..af6742c
+}; +};
diff --git a/src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp diff --git a/src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp
new file mode 100644 new file mode 100644
index 0000000..2daa8cb index 0000000..ba88137
--- /dev/null --- /dev/null
+++ b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp +++ b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp
@@ -0,0 +1,328 @@ @@ -0,0 +1,328 @@
@ -306,9 +311,9 @@ index 0000000..2daa8cb
+ +
+#include "CECTypeUtils.h" +#include "CECTypeUtils.h"
+#include "LibCEC.h" +#include "LibCEC.h"
+#include "platform/sockets/cdevsocket.h" +#include "p8-platform/sockets/cdevsocket.h"
+#include "platform/util/StdString.h" +#include "p8-platform/util/StdString.h"
+#include "platform/util/buffer.h" +#include "p8-platform/util/buffer.h"
+ +
+/* +/*
+ * Ioctl definitions from kernel header + * Ioctl definitions from kernel header
@ -336,7 +341,7 @@ index 0000000..2daa8cb
+ +
+using namespace std; +using namespace std;
+using namespace CEC; +using namespace CEC;
+using namespace PLATFORM; +using namespace P8PLATFORM;
+ +
+#include "AdapterMessageQueue.h" +#include "AdapterMessageQueue.h"
+ +
@ -602,7 +607,7 @@ index 0000000..2daa8cb
+#endif // HAVE_IMX_API +#endif // HAVE_IMX_API
diff --git a/src/libcec/adapter/IMX/IMXCECAdapterCommunication.h b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.h diff --git a/src/libcec/adapter/IMX/IMXCECAdapterCommunication.h b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.h
new file mode 100644 new file mode 100644
index 0000000..9e899a3 index 0000000..cebe5b6
--- /dev/null --- /dev/null
+++ b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.h +++ b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.h
@@ -0,0 +1,119 @@ @@ -0,0 +1,119 @@
@ -636,9 +641,9 @@ index 0000000..9e899a3
+ +
+#if defined(HAVE_IMX_API) +#if defined(HAVE_IMX_API)
+ +
+#include "platform/threads/mutex.h" +#include "p8-platform/threads/mutex.h"
+#include "platform/threads/threads.h" +#include "p8-platform/threads/threads.h"
+#include "platform/sockets/socket.h" +#include "p8-platform/sockets/socket.h"
+#include "adapter/AdapterCommunication.h" +#include "adapter/AdapterCommunication.h"
+#include <map> +#include <map>
+ +
@ -647,7 +652,7 @@ index 0000000..9e899a3
+ +
+ +
+ +
+namespace PLATFORM +namespace P8PLATFORM
+{ +{
+ class CCDevSocket; + class CCDevSocket;
+}; +};
@ -657,7 +662,7 @@ index 0000000..9e899a3
+{ +{
+ class CAdapterMessageQueueEntry; + class CAdapterMessageQueueEntry;
+ +
+ class CIMXCECAdapterCommunication : public IAdapterCommunication, public PLATFORM::CThread + class CIMXCECAdapterCommunication : public IAdapterCommunication, public P8PLATFORM::CThread
+ { + {
+ public: + public:
+ /*! + /*!
@ -698,7 +703,7 @@ index 0000000..9e899a3
+ bool RegisterLogicalAddress(const cec_logical_address address); + bool RegisterLogicalAddress(const cec_logical_address address);
+ ///} + ///}
+ +
+ /** @name PLATFORM::CThread implementation */ + /** @name P8PLATFORM::CThread implementation */
+ ///{ + ///{
+ void *Process(void); + void *Process(void);
+ ///} + ///}
@ -712,12 +717,12 @@ index 0000000..9e899a3
+ //cec_logical_addresses m_logicalAddresses; + //cec_logical_addresses m_logicalAddresses;
+ cec_logical_address m_logicalAddress; + cec_logical_address m_logicalAddress;
+ +
+ PLATFORM::CMutex m_mutex; + P8PLATFORM::CMutex m_mutex;
+ PLATFORM::CCDevSocket *m_dev; /**< the device connection */ + P8PLATFORM::CCDevSocket *m_dev; /**< the device connection */
+ bool m_bLogicalAddressRegistered; + bool m_bLogicalAddressRegistered;
+ bool m_bInitialised; + bool m_bInitialised;
+ +
+ PLATFORM::CMutex m_messageMutex; + P8PLATFORM::CMutex m_messageMutex;
+ uint32_t m_iNextMessage; + uint32_t m_iNextMessage;
+ std::map<uint32_t, CAdapterMessageQueueEntry *> m_messages; + std::map<uint32_t, CAdapterMessageQueueEntry *> m_messages;
+ }; + };
@ -816,18 +821,18 @@ index 0000000..d54891d
+ }; + };
+} +}
diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
index 828cdb2..8b47795 100644 index b8a16c8..dc5bc25 100644
--- a/src/libcec/cmake/CheckPlatformSupport.cmake --- a/src/libcec/cmake/CheckPlatformSupport.cmake
+++ b/src/libcec/cmake/CheckPlatformSupport.cmake +++ b/src/libcec/cmake/CheckPlatformSupport.cmake
@@ -8,6 +8,7 @@ @@ -7,6 +7,7 @@
# HAVE_RANDR 1 if xrandr is supported # HAVE_RANDR 1 if xrandr is supported
# HAVE_LIBUDEV 1 if udev is supported # HAVE_LIBUDEV 1 if udev is supported
# HAVE_RPI_API 1 if Raspberry Pi is supported # HAVE_RPI_API 1 if Raspberry Pi is supported
+# HAVE_IMX_API 1 if i.MX is supported +# HAVE_IMX_API 1 if i.MX is supported
# HAVE_TDA995X_API 1 if TDA995X is supported # HAVE_TDA995X_API 1 if TDA995X is supported
# HAVE_EXYNOS_API 1 if Exynos is supported # HAVE_EXYNOS_API 1 if Exynos is supported
# HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected # HAVE_P8_USB 1 if Pulse-Eight devices are supported
@@ -87,6 +88,15 @@ else() @@ -110,6 +111,15 @@ else()
list(APPEND CEC_SOURCES ${CEC_SOURCES_ADAPTER_RPI}) list(APPEND CEC_SOURCES ${CEC_SOURCES_ADAPTER_RPI})
endif() endif()
@ -844,10 +849,10 @@ index 828cdb2..8b47795 100644
check_include_files("tda998x_ioctl.h;comps/tmdlHdmiCEC/inc/tmdlHdmiCEC_Types.h" HAVE_TDA995X_API) check_include_files("tda998x_ioctl.h;comps/tmdlHdmiCEC/inc/tmdlHdmiCEC_Types.h" HAVE_TDA995X_API)
if (HAVE_TDA995X_API) if (HAVE_TDA995X_API)
diff --git a/src/libcec/cmake/DisplayPlatformSupport.cmake b/src/libcec/cmake/DisplayPlatformSupport.cmake diff --git a/src/libcec/cmake/DisplayPlatformSupport.cmake b/src/libcec/cmake/DisplayPlatformSupport.cmake
index feee111..0309c56 100644 index 9dcaacf..4e24def 100644
--- a/src/libcec/cmake/DisplayPlatformSupport.cmake --- a/src/libcec/cmake/DisplayPlatformSupport.cmake
+++ b/src/libcec/cmake/DisplayPlatformSupport.cmake +++ b/src/libcec/cmake/DisplayPlatformSupport.cmake
@@ -32,6 +32,12 @@ else() @@ -26,6 +26,12 @@ else()
message(STATUS "Raspberry Pi support: no") message(STATUS "Raspberry Pi support: no")
endif() endif()
@ -861,10 +866,10 @@ index feee111..0309c56 100644
message(STATUS "TDA995x support: yes") message(STATUS "TDA995x support: yes")
else() else()
diff --git a/src/libcec/env.h.in b/src/libcec/env.h.in diff --git a/src/libcec/env.h.in b/src/libcec/env.h.in
index a1a1f26..f90e729 100644 index 0496aa0..384f1c7 100644
--- a/src/libcec/env.h.in --- a/src/libcec/env.h.in
+++ b/src/libcec/env.h.in +++ b/src/libcec/env.h.in
@@ -60,6 +60,9 @@ @@ -66,6 +66,9 @@
/* Define to 1 for Raspberry Pi support */ /* Define to 1 for Raspberry Pi support */
#cmakedefine HAVE_RPI_API @HAVE_RPI_API@ #cmakedefine HAVE_RPI_API @HAVE_RPI_API@
@ -875,5 +880,5 @@ index a1a1f26..f90e729 100644
#cmakedefine HAVE_TDA995X_API @HAVE_TDA995X_API@ #cmakedefine HAVE_TDA995X_API @HAVE_TDA995X_API@
-- --
2.1.4 2.7.1