mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-26 00:03:57 +00:00
[media] cec: Kconfig cleanup
The Kconfig options for the CEC subsystem were a bit messy. In addition there were two cec sources (cec-edid.c and cec-notifier.c) that were outside of the media/cec directory, which was weird. Move those sources to media/cec as well. The cec-edid and cec-notifier functionality is now part of the cec module and these are no longer separate modules. Also remove the MEDIA_CEC_EDID config option and include it with the main CEC config option (which defined CEC_EDID anyway). Added static inlines to cec-edid.h for dummy functions when CEC_CORE isn't defined. CEC drivers should now depend on CEC_CORE. CEC drivers that need the cec-notifier functionality must explicitly select CEC_NOTIFIER. The s5p-cec and stih-cec drivers depended on VIDEO_DEV instead of CEC_CORE, fix that as well. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
ee0fe833d9
commit
56a263aaa0
14 changed files with 91 additions and 79 deletions
|
@ -3075,8 +3075,6 @@ S: Supported
|
||||||
F: Documentation/media/kapi/cec-core.rst
|
F: Documentation/media/kapi/cec-core.rst
|
||||||
F: Documentation/media/uapi/cec
|
F: Documentation/media/uapi/cec
|
||||||
F: drivers/media/cec/
|
F: drivers/media/cec/
|
||||||
F: drivers/media/cec-edid.c
|
|
||||||
F: drivers/media/cec-notifier.c
|
|
||||||
F: drivers/media/rc/keymaps/rc-cec.c
|
F: drivers/media/rc/keymaps/rc-cec.c
|
||||||
F: include/media/cec.h
|
F: include/media/cec.h
|
||||||
F: include/media/cec-edid.h
|
F: include/media/cec-edid.h
|
||||||
|
|
|
@ -81,27 +81,15 @@ 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
|
config MEDIA_CEC_SUPPORT
|
||||||
bool "HDMI CEC support"
|
bool "HDMI CEC support"
|
||||||
select MEDIA_CEC_EDID
|
---help---
|
||||||
---help---
|
Enable support for HDMI CEC (Consumer Electronics Control),
|
||||||
Enable support for HDMI CEC (Consumer Electronics Control),
|
which is an optional HDMI feature.
|
||||||
which is an optional HDMI feature.
|
|
||||||
|
|
||||||
Say Y when you have an HDMI receiver, transmitter or a USB CEC
|
Say Y when you have an HDMI receiver, transmitter or a USB CEC
|
||||||
adapter that supports HDMI CEC.
|
adapter that supports HDMI CEC.
|
||||||
|
|
||||||
config MEDIA_CEC_DEBUG
|
source "drivers/media/cec/Kconfig"
|
||||||
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
|
|
||||||
bool
|
|
||||||
|
|
||||||
config MEDIA_CEC_NOTIFIER
|
|
||||||
bool
|
|
||||||
select MEDIA_CEC_EDID
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Media controller
|
# Media controller
|
||||||
|
|
|
@ -2,20 +2,10 @@
|
||||||
# Makefile for the kernel multimedia device drivers.
|
# Makefile for the kernel multimedia device drivers.
|
||||||
#
|
#
|
||||||
|
|
||||||
ifeq ($(CONFIG_MEDIA_CEC_EDID),y)
|
|
||||||
obj-$(CONFIG_MEDIA_SUPPORT) += cec-edid.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_MEDIA_CEC_NOTIFIER),y)
|
|
||||||
obj-$(CONFIG_MEDIA_SUPPORT) += cec-notifier.o
|
|
||||||
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
|
||||||
|
|
||||||
|
obj-$(CONFIG_CEC_CORE) += cec/
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C drivers should come before other drivers, otherwise they'll fail
|
# I2C drivers should come before other drivers, otherwise they'll fail
|
||||||
# when compiled as builtin drivers
|
# when compiled as builtin drivers
|
||||||
|
|
13
drivers/media/cec/Kconfig
Normal file
13
drivers/media/cec/Kconfig
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
config CEC_CORE
|
||||||
|
tristate
|
||||||
|
depends on MEDIA_CEC_SUPPORT
|
||||||
|
default y
|
||||||
|
|
||||||
|
config MEDIA_CEC_NOTIFIER
|
||||||
|
bool
|
||||||
|
|
||||||
|
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.
|
|
@ -1,5 +1,7 @@
|
||||||
cec-objs := cec-core.o cec-adap.o cec-api.o
|
cec-objs := cec-core.o cec-adap.o cec-api.o cec-edid.o
|
||||||
|
|
||||||
ifeq ($(CONFIG_MEDIA_CEC_SUPPORT),y)
|
ifeq ($(CONFIG_MEDIA_CEC_NOTIFIER),y)
|
||||||
obj-$(CONFIG_MEDIA_SUPPORT) += cec.o
|
cec-objs += cec-notifier.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
obj-$(CONFIG_CEC_CORE) += cec.o
|
||||||
|
|
|
@ -165,7 +165,3 @@ int cec_phys_addr_validate(u16 phys_addr, u16 *parent, u16 *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(cec_phys_addr_validate);
|
EXPORT_SYMBOL_GPL(cec_phys_addr_validate);
|
||||||
|
|
||||||
MODULE_AUTHOR("Hans Verkuil <hans.verkuil@cisco.com>");
|
|
||||||
MODULE_DESCRIPTION("CEC EDID helper functions");
|
|
||||||
MODULE_LICENSE("GPL");
|
|
|
@ -209,7 +209,6 @@ config VIDEO_ADV7604
|
||||||
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
|
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
|
||||||
depends on GPIOLIB || COMPILE_TEST
|
depends on GPIOLIB || COMPILE_TEST
|
||||||
select HDMI
|
select HDMI
|
||||||
select MEDIA_CEC_EDID
|
|
||||||
---help---
|
---help---
|
||||||
Support for the Analog Devices ADV7604 video decoder.
|
Support for the Analog Devices ADV7604 video decoder.
|
||||||
|
|
||||||
|
@ -221,7 +220,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_SUPPORT
|
depends on VIDEO_ADV7604 && CEC_CORE
|
||||||
---help---
|
---help---
|
||||||
When selected the adv7604 will support the optional
|
When selected the adv7604 will support the optional
|
||||||
HDMI CEC feature.
|
HDMI CEC feature.
|
||||||
|
@ -230,7 +229,6 @@ config VIDEO_ADV7842
|
||||||
tristate "Analog Devices ADV7842 decoder"
|
tristate "Analog Devices ADV7842 decoder"
|
||||||
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
|
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
|
||||||
select HDMI
|
select HDMI
|
||||||
select MEDIA_CEC_EDID
|
|
||||||
---help---
|
---help---
|
||||||
Support for the Analog Devices ADV7842 video decoder.
|
Support for the Analog Devices ADV7842 video decoder.
|
||||||
|
|
||||||
|
@ -242,7 +240,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_SUPPORT
|
depends on VIDEO_ADV7842 && CEC_CORE
|
||||||
---help---
|
---help---
|
||||||
When selected the adv7842 will support the optional
|
When selected the adv7842 will support the optional
|
||||||
HDMI CEC feature.
|
HDMI CEC feature.
|
||||||
|
@ -470,7 +468,6 @@ config VIDEO_ADV7511
|
||||||
tristate "Analog Devices ADV7511 encoder"
|
tristate "Analog Devices ADV7511 encoder"
|
||||||
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
|
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
|
||||||
select HDMI
|
select HDMI
|
||||||
select MEDIA_CEC_EDID
|
|
||||||
---help---
|
---help---
|
||||||
Support for the Analog Devices ADV7511 video encoder.
|
Support for the Analog Devices ADV7511 video encoder.
|
||||||
|
|
||||||
|
@ -481,7 +478,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_SUPPORT
|
depends on VIDEO_ADV7511 && CEC_CORE
|
||||||
---help---
|
---help---
|
||||||
When selected the adv7511 will support the optional
|
When selected the adv7511 will support the optional
|
||||||
HDMI CEC feature.
|
HDMI CEC feature.
|
||||||
|
|
|
@ -461,34 +461,6 @@ config VIDEO_TI_SC
|
||||||
config VIDEO_TI_CSC
|
config VIDEO_TI_CSC
|
||||||
tristate
|
tristate
|
||||||
|
|
||||||
menuconfig V4L_CEC_DRIVERS
|
|
||||||
bool "Platform HDMI CEC drivers"
|
|
||||||
depends on MEDIA_CEC_SUPPORT
|
|
||||||
|
|
||||||
if V4L_CEC_DRIVERS
|
|
||||||
|
|
||||||
config VIDEO_SAMSUNG_S5P_CEC
|
|
||||||
tristate "Samsung S5P CEC driver"
|
|
||||||
depends on VIDEO_DEV && MEDIA_CEC_SUPPORT && (PLAT_S5P || ARCH_EXYNOS || COMPILE_TEST)
|
|
||||||
select MEDIA_CEC_NOTIFIER
|
|
||||||
---help---
|
|
||||||
This is a driver for Samsung S5P HDMI CEC interface. It uses the
|
|
||||||
generic CEC framework interface.
|
|
||||||
CEC bus is present in the HDMI connector and enables communication
|
|
||||||
between compatible devices.
|
|
||||||
|
|
||||||
config VIDEO_STI_HDMI_CEC
|
|
||||||
tristate "STMicroelectronics STiH4xx HDMI CEC driver"
|
|
||||||
depends on VIDEO_DEV && MEDIA_CEC_SUPPORT && (ARCH_STI || COMPILE_TEST)
|
|
||||||
select MEDIA_CEC_NOTIFIER
|
|
||||||
---help---
|
|
||||||
This is a driver for STIH4xx HDMI CEC interface. It uses the
|
|
||||||
generic CEC framework interface.
|
|
||||||
CEC bus is present in the HDMI connector and enables communication
|
|
||||||
between compatible devices.
|
|
||||||
|
|
||||||
endif #V4L_CEC_DRIVERS
|
|
||||||
|
|
||||||
menuconfig V4L_TEST_DRIVERS
|
menuconfig V4L_TEST_DRIVERS
|
||||||
bool "Media test drivers"
|
bool "Media test drivers"
|
||||||
depends on MEDIA_CAMERA_SUPPORT
|
depends on MEDIA_CAMERA_SUPPORT
|
||||||
|
@ -520,3 +492,31 @@ menuconfig DVB_PLATFORM_DRIVERS
|
||||||
if DVB_PLATFORM_DRIVERS
|
if DVB_PLATFORM_DRIVERS
|
||||||
source "drivers/media/platform/sti/c8sectpfe/Kconfig"
|
source "drivers/media/platform/sti/c8sectpfe/Kconfig"
|
||||||
endif #DVB_PLATFORM_DRIVERS
|
endif #DVB_PLATFORM_DRIVERS
|
||||||
|
|
||||||
|
menuconfig CEC_PLATFORM_DRIVERS
|
||||||
|
bool "CEC platform devices"
|
||||||
|
depends on MEDIA_CEC_SUPPORT
|
||||||
|
|
||||||
|
if CEC_PLATFORM_DRIVERS
|
||||||
|
|
||||||
|
config VIDEO_SAMSUNG_S5P_CEC
|
||||||
|
tristate "Samsung S5P CEC driver"
|
||||||
|
depends on CEC_CORE && (PLAT_S5P || ARCH_EXYNOS || COMPILE_TEST)
|
||||||
|
select MEDIA_CEC_NOTIFIER
|
||||||
|
---help---
|
||||||
|
This is a driver for Samsung S5P HDMI CEC interface. It uses the
|
||||||
|
generic CEC framework interface.
|
||||||
|
CEC bus is present in the HDMI connector and enables communication
|
||||||
|
between compatible devices.
|
||||||
|
|
||||||
|
config VIDEO_STI_HDMI_CEC
|
||||||
|
tristate "STMicroelectronics STiH4xx HDMI CEC driver"
|
||||||
|
depends on CEC_CORE && (ARCH_STI || COMPILE_TEST)
|
||||||
|
select MEDIA_CEC_NOTIFIER
|
||||||
|
---help---
|
||||||
|
This is a driver for STIH4xx HDMI CEC interface. It uses the
|
||||||
|
generic CEC framework interface.
|
||||||
|
CEC bus is present in the HDMI connector and enables communication
|
||||||
|
between compatible devices.
|
||||||
|
|
||||||
|
endif #CEC_PLATFORM_DRIVERS
|
||||||
|
|
|
@ -7,7 +7,6 @@ config VIDEO_VIVID
|
||||||
select FB_CFB_FILLRECT
|
select FB_CFB_FILLRECT
|
||||||
select FB_CFB_COPYAREA
|
select FB_CFB_COPYAREA
|
||||||
select FB_CFB_IMAGEBLIT
|
select FB_CFB_IMAGEBLIT
|
||||||
select MEDIA_CEC_EDID
|
|
||||||
select VIDEOBUF2_VMALLOC
|
select VIDEOBUF2_VMALLOC
|
||||||
select VIDEOBUF2_DMA_CONTIG
|
select VIDEOBUF2_DMA_CONTIG
|
||||||
select VIDEO_V4L2_TPG
|
select VIDEO_V4L2_TPG
|
||||||
|
@ -27,7 +26,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_SUPPORT
|
depends on VIDEO_VIVID && CEC_CORE
|
||||||
---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.
|
||||||
|
|
|
@ -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_SUPPORT
|
depends on USB_ACM && CEC_CORE
|
||||||
select SERIO
|
select SERIO
|
||||||
select SERIO_SERPORT
|
select SERIO_SERPORT
|
||||||
---help---
|
---help---
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
config USB_RAINSHADOW_CEC
|
config USB_RAINSHADOW_CEC
|
||||||
tristate "RainShadow Tech HDMI CEC"
|
tristate "RainShadow Tech HDMI CEC"
|
||||||
depends on USB_ACM && MEDIA_CEC_SUPPORT
|
depends on USB_ACM && CEC_CORE
|
||||||
select SERIO
|
select SERIO
|
||||||
select SERIO_SERPORT
|
select SERIO_SERPORT
|
||||||
---help---
|
---help---
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
#define cec_phys_addr_exp(pa) \
|
#define cec_phys_addr_exp(pa) \
|
||||||
((pa) >> 12), ((pa) >> 8) & 0xf, ((pa) >> 4) & 0xf, (pa) & 0xf
|
((pa) >> 12), ((pa) >> 8) & 0xf, ((pa) >> 4) & 0xf, (pa) & 0xf
|
||||||
|
|
||||||
|
#if IS_ENABLED(CONFIG_CEC_CORE)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cec_get_edid_phys_addr() - find and return the physical address
|
* cec_get_edid_phys_addr() - find and return the physical address
|
||||||
*
|
*
|
||||||
|
@ -101,4 +103,31 @@ u16 cec_phys_addr_for_input(u16 phys_addr, u8 input);
|
||||||
*/
|
*/
|
||||||
int cec_phys_addr_validate(u16 phys_addr, u16 *parent, u16 *port);
|
int cec_phys_addr_validate(u16 phys_addr, u16 *parent, u16 *port);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
static inline u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size,
|
||||||
|
unsigned int *offset)
|
||||||
|
{
|
||||||
|
if (offset)
|
||||||
|
*offset = 0;
|
||||||
|
return CEC_PHYS_ADDR_INVALID;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void cec_set_edid_phys_addr(u8 *edid, unsigned int size,
|
||||||
|
u16 phys_addr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline u16 cec_phys_addr_for_input(u16 phys_addr, u8 input)
|
||||||
|
{
|
||||||
|
return CEC_PHYS_ADDR_INVALID;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int cec_phys_addr_validate(u16 phys_addr, u16 *parent, u16 *port)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* _MEDIA_CEC_EDID_H */
|
#endif /* _MEDIA_CEC_EDID_H */
|
||||||
|
|
|
@ -204,7 +204,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_SUPPORT)
|
#if IS_ENABLED(CONFIG_CEC_CORE)
|
||||||
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);
|
||||||
int cec_register_adapter(struct cec_adapter *adap, struct device *parent);
|
int cec_register_adapter(struct cec_adapter *adap, struct device *parent);
|
||||||
|
|
Loading…
Add table
Reference in a new issue