浏览代码

[media] cec: move the CEC framework out of staging and to media

The last open issues have been addressed, so it is time to move
this out of staging and into the mainline and to move the public
cec headers to include/uapi/linux.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Hans Verkuil 8 年之前
父节点
当前提交
0dbacebede

+ 1 - 1
Documentation/media/Makefile

@@ -51,7 +51,7 @@ $(BUILDDIR)/videodev2.h.rst: ${UAPI}/videodev2.h ${PARSER} $(SRC_DIR)/videodev2.
 $(BUILDDIR)/media.h.rst: ${UAPI}/media.h ${PARSER} $(SRC_DIR)/media.h.rst.exceptions
 $(BUILDDIR)/media.h.rst: ${UAPI}/media.h ${PARSER} $(SRC_DIR)/media.h.rst.exceptions
 	@$($(quiet)gen_rst)
 	@$($(quiet)gen_rst)
 
 
-$(BUILDDIR)/cec.h.rst: ${KAPI}/cec.h ${PARSER} $(SRC_DIR)/cec.h.rst.exceptions
+$(BUILDDIR)/cec.h.rst: ${UAPI}/cec.h ${PARSER} $(SRC_DIR)/cec.h.rst.exceptions
 	@$($(quiet)gen_rst)
 	@$($(quiet)gen_rst)
 
 
 $(BUILDDIR)/lirc.h.rst: ${UAPI}/lirc.h ${PARSER} $(SRC_DIR)/lirc.h.rst.exceptions
 $(BUILDDIR)/lirc.h.rst: ${UAPI}/lirc.h ${PARSER} $(SRC_DIR)/lirc.h.rst.exceptions

+ 16 - 0
drivers/media/Kconfig

@@ -80,6 +80,22 @@ config MEDIA_RC_SUPPORT
 
 
 	  Say Y when you have a TV or an IR device.
 	  Say Y when you have a TV or an IR device.
 
 
+config MEDIA_CEC_SUPPORT
+	bool "HDMI CEC support"
+	select MEDIA_CEC_EDID
+	---help---
+	  Enable support for HDMI CEC (Consumer Electronics Control),
+	  which is an optional HDMI feature.
+
+	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
+	  adapter that supports HDMI CEC.
+
+config MEDIA_CEC_DEBUG
+	bool "HDMI CEC debugfs interface"
+	depends on MEDIA_CEC_SUPPORT && DEBUG_FS
+	---help---
+	  Turns on the DebugFS interface for CEC devices.
+
 config MEDIA_CEC_EDID
 config MEDIA_CEC_EDID
 	bool
 	bool
 
 

+ 4 - 0
drivers/media/Makefile

@@ -6,6 +6,10 @@ ifeq ($(CONFIG_MEDIA_CEC_EDID),y)
   obj-$(CONFIG_MEDIA_SUPPORT) += cec-edid.o
   obj-$(CONFIG_MEDIA_SUPPORT) += cec-edid.o
 endif
 endif
 
 
+ifeq ($(CONFIG_MEDIA_CEC_SUPPORT),y)
+  obj-$(CONFIG_MEDIA_SUPPORT) += cec/
+endif
+
 media-objs	:= media-device.o media-devnode.o media-entity.o
 media-objs	:= media-device.o media-devnode.o media-entity.o
 
 
 #
 #

+ 1 - 1
drivers/staging/media/cec/Makefile → drivers/media/cec/Makefile

@@ -1,5 +1,5 @@
 cec-objs := cec-core.o cec-adap.o cec-api.o
 cec-objs := cec-core.o cec-adap.o cec-api.o
 
 
-ifeq ($(CONFIG_MEDIA_CEC),y)
+ifeq ($(CONFIG_MEDIA_CEC_SUPPORT),y)
   obj-$(CONFIG_MEDIA_SUPPORT) += cec.o
   obj-$(CONFIG_MEDIA_SUPPORT) += cec.o
 endif
 endif

+ 0 - 0
drivers/staging/media/cec/cec-adap.c → drivers/media/cec/cec-adap.c


+ 0 - 0
drivers/staging/media/cec/cec-api.c → drivers/media/cec/cec-api.c


+ 0 - 0
drivers/staging/media/cec/cec-core.c → drivers/media/cec/cec-core.c


+ 0 - 0
drivers/staging/media/cec/cec-priv.h → drivers/media/cec/cec-priv.h


+ 3 - 3
drivers/media/i2c/Kconfig

@@ -221,7 +221,7 @@ config VIDEO_ADV7604
 
 
 config VIDEO_ADV7604_CEC
 config VIDEO_ADV7604_CEC
 	bool "Enable Analog Devices ADV7604 CEC support"
 	bool "Enable Analog Devices ADV7604 CEC support"
-	depends on VIDEO_ADV7604 && MEDIA_CEC
+	depends on VIDEO_ADV7604 && MEDIA_CEC_SUPPORT
 	---help---
 	---help---
 	  When selected the adv7604 will support the optional
 	  When selected the adv7604 will support the optional
 	  HDMI CEC feature.
 	  HDMI CEC feature.
@@ -242,7 +242,7 @@ config VIDEO_ADV7842
 
 
 config VIDEO_ADV7842_CEC
 config VIDEO_ADV7842_CEC
 	bool "Enable Analog Devices ADV7842 CEC support"
 	bool "Enable Analog Devices ADV7842 CEC support"
-	depends on VIDEO_ADV7842 && MEDIA_CEC
+	depends on VIDEO_ADV7842 && MEDIA_CEC_SUPPORT
 	---help---
 	---help---
 	  When selected the adv7842 will support the optional
 	  When selected the adv7842 will support the optional
 	  HDMI CEC feature.
 	  HDMI CEC feature.
@@ -481,7 +481,7 @@ config VIDEO_ADV7511
 
 
 config VIDEO_ADV7511_CEC
 config VIDEO_ADV7511_CEC
 	bool "Enable Analog Devices ADV7511 CEC support"
 	bool "Enable Analog Devices ADV7511 CEC support"
-	depends on VIDEO_ADV7511 && MEDIA_CEC
+	depends on VIDEO_ADV7511 && MEDIA_CEC_SUPPORT
 	---help---
 	---help---
 	  When selected the adv7511 will support the optional
 	  When selected the adv7511 will support the optional
 	  HDMI CEC feature.
 	  HDMI CEC feature.

+ 1 - 1
drivers/media/platform/vivid/Kconfig

@@ -25,7 +25,7 @@ config VIDEO_VIVID
 
 
 config VIDEO_VIVID_CEC
 config VIDEO_VIVID_CEC
 	bool "Enable CEC emulation support"
 	bool "Enable CEC emulation support"
-	depends on VIDEO_VIVID && MEDIA_CEC
+	depends on VIDEO_VIVID && MEDIA_CEC_SUPPORT
 	---help---
 	---help---
 	  When selected the vivid module will emulate the optional
 	  When selected the vivid module will emulate the optional
 	  HDMI CEC feature.
 	  HDMI CEC feature.

+ 0 - 2
drivers/staging/media/Kconfig

@@ -21,8 +21,6 @@ if STAGING_MEDIA && MEDIA_SUPPORT
 # Please keep them in alphabetic order
 # Please keep them in alphabetic order
 source "drivers/staging/media/bcm2048/Kconfig"
 source "drivers/staging/media/bcm2048/Kconfig"
 
 
-source "drivers/staging/media/cec/Kconfig"
-
 source "drivers/staging/media/cxd2099/Kconfig"
 source "drivers/staging/media/cxd2099/Kconfig"
 
 
 source "drivers/staging/media/davinci_vpfe/Kconfig"
 source "drivers/staging/media/davinci_vpfe/Kconfig"

+ 0 - 1
drivers/staging/media/Makefile

@@ -1,5 +1,4 @@
 obj-$(CONFIG_I2C_BCM2048)	+= bcm2048/
 obj-$(CONFIG_I2C_BCM2048)	+= bcm2048/
-obj-$(CONFIG_MEDIA_CEC)		+= cec/
 obj-$(CONFIG_VIDEO_SAMSUNG_S5P_CEC) += s5p-cec/
 obj-$(CONFIG_VIDEO_SAMSUNG_S5P_CEC) += s5p-cec/
 obj-$(CONFIG_DVB_CXD2099)	+= cxd2099/
 obj-$(CONFIG_DVB_CXD2099)	+= cxd2099/
 obj-$(CONFIG_LIRC_STAGING)	+= lirc/
 obj-$(CONFIG_LIRC_STAGING)	+= lirc/

+ 0 - 12
drivers/staging/media/cec/Kconfig

@@ -1,12 +0,0 @@
-config MEDIA_CEC
-	bool "CEC API (EXPERIMENTAL)"
-	depends on MEDIA_SUPPORT
-	select MEDIA_CEC_EDID
-	---help---
-	  Enable the CEC API.
-
-config MEDIA_CEC_DEBUG
-	bool "CEC debugfs interface (EXPERIMENTAL)"
-	depends on MEDIA_CEC && DEBUG_FS
-	---help---
-	  Turns on the DebugFS interface for CEC devices.

+ 0 - 9
drivers/staging/media/cec/TODO

@@ -1,9 +0,0 @@
-TODOs:
-
-- Once this is out of staging this should no longer be a separate
-  config option, instead it should be selected by drivers that want it.
-- Revisit the IS_REACHABLE(RC_CORE): perhaps the RC_CORE support should
-  be enabled through a separate config option in drivers/media/Kconfig
-  or rc/Kconfig?
-
-Hans Verkuil <hans.verkuil@cisco.com>

+ 1 - 1
drivers/staging/media/pulse8-cec/Kconfig

@@ -1,6 +1,6 @@
 config USB_PULSE8_CEC
 config USB_PULSE8_CEC
 	tristate "Pulse Eight HDMI CEC"
 	tristate "Pulse Eight HDMI CEC"
-	depends on USB_ACM && MEDIA_CEC
+	depends on USB_ACM && MEDIA_CEC_SUPPORT
 	select SERIO
 	select SERIO
 	select SERIO_SERPORT
 	select SERIO_SERPORT
 	---help---
 	---help---

+ 1 - 1
drivers/staging/media/s5p-cec/Kconfig

@@ -1,6 +1,6 @@
 config VIDEO_SAMSUNG_S5P_CEC
 config VIDEO_SAMSUNG_S5P_CEC
        tristate "Samsung S5P CEC driver"
        tristate "Samsung S5P CEC driver"
-       depends on VIDEO_DEV && MEDIA_CEC && (PLAT_S5P || ARCH_EXYNOS || COMPILE_TEST)
+       depends on VIDEO_DEV && MEDIA_CEC_SUPPORT && (PLAT_S5P || ARCH_EXYNOS || COMPILE_TEST)
        ---help---
        ---help---
          This is a driver for Samsung S5P HDMI CEC interface. It uses the
          This is a driver for Samsung S5P HDMI CEC interface. It uses the
          generic CEC framework interface.
          generic CEC framework interface.

+ 1 - 1
drivers/staging/media/st-cec/Kconfig

@@ -1,6 +1,6 @@
 config VIDEO_STI_HDMI_CEC
 config VIDEO_STI_HDMI_CEC
        tristate "STMicroelectronics STiH4xx HDMI CEC driver"
        tristate "STMicroelectronics STiH4xx HDMI CEC driver"
-       depends on VIDEO_DEV && MEDIA_CEC && (ARCH_STI || COMPILE_TEST)
+       depends on VIDEO_DEV && MEDIA_CEC_SUPPORT && (ARCH_STI || COMPILE_TEST)
        ---help---
        ---help---
          This is a driver for STIH4xx HDMI CEC interface. It uses the
          This is a driver for STIH4xx HDMI CEC interface. It uses the
          generic CEC framework interface.
          generic CEC framework interface.

+ 1 - 1
include/media/cec.h

@@ -196,7 +196,7 @@ static inline bool cec_is_sink(const struct cec_adapter *adap)
 	return adap->phys_addr == 0;
 	return adap->phys_addr == 0;
 }
 }
 
 
-#if IS_ENABLED(CONFIG_MEDIA_CEC)
+#if IS_ENABLED(CONFIG_MEDIA_CEC_SUPPORT)
 struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
 struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
 		void *priv, const char *name, u32 caps, u8 available_las,
 		void *priv, const char *name, u32 caps, u8 available_las,
 		struct device *parent);
 		struct device *parent);

+ 2 - 0
include/uapi/linux/Kbuild

@@ -82,6 +82,8 @@ header-y += capi.h
 header-y += cciss_defs.h
 header-y += cciss_defs.h
 header-y += cciss_ioctl.h
 header-y += cciss_ioctl.h
 header-y += cdrom.h
 header-y += cdrom.h
+header-y += cec.h
+header-y += cec-funcs.h
 header-y += cgroupstats.h
 header-y += cgroupstats.h
 header-y += chio.h
 header-y += chio.h
 header-y += cm4000_cs.h
 header-y += cm4000_cs.h

+ 0 - 6
include/linux/cec-funcs.h → include/uapi/linux/cec-funcs.h

@@ -33,12 +33,6 @@
  * SOFTWARE.
  * SOFTWARE.
  */
  */
 
 
-/*
- * Note: this framework is still in staging and it is likely the API
- * will change before it goes out of staging.
- *
- * Once it is moved out of staging this header will move to uapi.
- */
 #ifndef _CEC_UAPI_FUNCS_H
 #ifndef _CEC_UAPI_FUNCS_H
 #define _CEC_UAPI_FUNCS_H
 #define _CEC_UAPI_FUNCS_H
 
 

+ 0 - 6
include/linux/cec.h → include/uapi/linux/cec.h

@@ -33,12 +33,6 @@
  * SOFTWARE.
  * SOFTWARE.
  */
  */
 
 
-/*
- * Note: this framework is still in staging and it is likely the API
- * will change before it goes out of staging.
- *
- * Once it is moved out of staging this header will move to uapi.
- */
 #ifndef _CEC_UAPI_H
 #ifndef _CEC_UAPI_H
 #define _CEC_UAPI_H
 #define _CEC_UAPI_H