mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-03 12:24:37 -04:00
drm/nouveau: incorporate I2C TV encoder drivers
Chrontel CH7006 and Silicon Image sil164 drivers use drm_encoder_slave interface which is being used only by the nouveau driver. It doesn't make sense to keep this interface inside the DRM subsystem. In preparation to moving this set of helpers to the nouveau driver, move the only two I2C driver that use that interface to the nouveau driver too. Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Danilo Krummrich <dakr@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20250106-nouveau-encoder-slave-v3-1-1d37d2f2c67f@linaro.org
This commit is contained in:
committed by
Danilo Krummrich
parent
26d6fd8191
commit
9a0dfe9bac
@@ -713,10 +713,10 @@ CONFIG_VIDEO_ADV7604_CEC=y
|
||||
CONFIG_VIDEO_ML86V7667=m
|
||||
CONFIG_IMX_IPUV3_CORE=m
|
||||
CONFIG_DRM=y
|
||||
# CONFIG_DRM_I2C_CH7006 is not set
|
||||
# CONFIG_DRM_I2C_SIL164 is not set
|
||||
CONFIG_DRM_I2C_NXP_TDA998X=m
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
# CONFIG_DRM_NOUVEAU_CH7006 is not set
|
||||
# CONFIG_DRM_NOUVEAU_SIL164 is not set
|
||||
CONFIG_DRM_EXYNOS=m
|
||||
CONFIG_DRM_EXYNOS_FIMD=y
|
||||
CONFIG_DRM_EXYNOS_MIXER=y
|
||||
|
||||
@@ -132,11 +132,11 @@ CONFIG_I2C=y
|
||||
CONFIG_HWMON=m
|
||||
CONFIG_DRM=m
|
||||
CONFIG_DRM_DISPLAY_DP_AUX_CEC=y
|
||||
# CONFIG_DRM_I2C_CH7006 is not set
|
||||
# CONFIG_DRM_I2C_SIL164 is not set
|
||||
CONFIG_DRM_RADEON=m
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
|
||||
# CONFIG_DRM_NOUVEAU_CH7006 is not set
|
||||
# CONFIG_DRM_NOUVEAU_SIL164 is not set
|
||||
CONFIG_DRM_VGEM=m
|
||||
CONFIG_DRM_UDL=m
|
||||
CONFIG_DRM_MGAG200=m
|
||||
|
||||
@@ -193,11 +193,11 @@ CONFIG_MEDIA_SUPPORT=m
|
||||
CONFIG_AGP=y
|
||||
CONFIG_AGP_PARISC=y
|
||||
CONFIG_DRM=y
|
||||
# CONFIG_DRM_I2C_CH7006 is not set
|
||||
# CONFIG_DRM_I2C_SIL164 is not set
|
||||
CONFIG_DRM_RADEON=y
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
|
||||
# CONFIG_DRM_NOUVEAU_CH7006 is not set
|
||||
# CONFIG_DRM_NOUVEAU_SIL164 is not set
|
||||
CONFIG_DRM_MGAG200=m
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_PM2=m
|
||||
|
||||
@@ -2,24 +2,6 @@
|
||||
menu "I2C encoder or helper chips"
|
||||
depends on DRM && DRM_KMS_HELPER && I2C
|
||||
|
||||
config DRM_I2C_CH7006
|
||||
tristate "Chrontel ch7006 TV encoder"
|
||||
default m if DRM_NOUVEAU
|
||||
help
|
||||
Support for Chrontel ch7006 and similar TV encoders, found
|
||||
on some nVidia video cards.
|
||||
|
||||
This driver is currently only useful if you're also using
|
||||
the nouveau driver.
|
||||
|
||||
config DRM_I2C_SIL164
|
||||
tristate "Silicon Image sil164 TMDS transmitter"
|
||||
default m if DRM_NOUVEAU
|
||||
help
|
||||
Support for sil164 and similar single-link (or dual-link
|
||||
when used in pairs) TMDS transmitters, used in some nVidia
|
||||
video cards.
|
||||
|
||||
config DRM_I2C_NXP_TDA998X
|
||||
tristate "NXP Semiconductors TDA998X HDMI encoder"
|
||||
default m if DRM_TILCDC
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
ch7006-y := ch7006_drv.o ch7006_mode.o
|
||||
obj-$(CONFIG_DRM_I2C_CH7006) += ch7006.o
|
||||
|
||||
sil164-y := sil164_drv.o
|
||||
obj-$(CONFIG_DRM_I2C_SIL164) += sil164.o
|
||||
|
||||
tda998x-y := tda998x_drv.o
|
||||
obj-$(CONFIG_DRM_I2C_NXP_TDA998X) += tda998x.o
|
||||
obj-$(CONFIG_DRM_I2C_NXP_TDA9950) += tda9950.o
|
||||
|
||||
@@ -109,3 +109,21 @@ config DRM_NOUVEAU_GSP_DEFAULT
|
||||
help
|
||||
Say Y here if you want to use the GSP codepaths by default on
|
||||
Turing and Ampere GPUs.
|
||||
|
||||
config DRM_NOUVEAU_CH7006
|
||||
tristate "Chrontel ch7006 TV encoder"
|
||||
depends on DRM_NOUVEAU
|
||||
default m
|
||||
help
|
||||
Support for Chrontel ch7006 and similar TV encoders.
|
||||
|
||||
This driver is currently only useful if you're also using
|
||||
the nouveau driver.
|
||||
|
||||
config DRM_NOUVEAU_SIL164
|
||||
tristate "Silicon Image sil164 TMDS transmitter"
|
||||
depends on DRM_NOUVEAU
|
||||
default m
|
||||
help
|
||||
Support for sil164 and similar single-link (or dual-link
|
||||
when used in pairs) TMDS transmitters.
|
||||
|
||||
@@ -10,3 +10,5 @@ nouveau-y += dispnv04/overlay.o
|
||||
nouveau-y += dispnv04/tvmodesnv17.o
|
||||
nouveau-y += dispnv04/tvnv04.o
|
||||
nouveau-y += dispnv04/tvnv17.o
|
||||
|
||||
include $(src)/dispnv04/i2c/Kbuild
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
#include "hw.h"
|
||||
#include "nvreg.h"
|
||||
|
||||
#include <drm/i2c/sil164.h>
|
||||
#include <dispnv04/i2c/sil164.h>
|
||||
|
||||
#include <subdev/i2c.h>
|
||||
|
||||
|
||||
5
drivers/gpu/drm/nouveau/dispnv04/i2c/Kbuild
Normal file
5
drivers/gpu/drm/nouveau/dispnv04/i2c/Kbuild
Normal file
@@ -0,0 +1,5 @@
|
||||
ch7006-y := dispnv04/i2c/ch7006_drv.o dispnv04/i2c/ch7006_mode.o
|
||||
obj-$(CONFIG_DRM_NOUVEAU_CH7006) += ch7006.o
|
||||
|
||||
sil164-y := dispnv04/i2c/sil164_drv.o
|
||||
obj-$(CONFIG_DRM_NOUVEAU_SIL164) += sil164.o
|
||||
@@ -24,12 +24,13 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __DRM_I2C_CH7006_PRIV_H__
|
||||
#define __DRM_I2C_CH7006_PRIV_H__
|
||||
#ifndef __NOUVEAU_I2C_CH7006_PRIV_H__
|
||||
#define __NOUVEAU_I2C_CH7006_PRIV_H__
|
||||
|
||||
#include <drm/drm_encoder_slave.h>
|
||||
#include <drm/drm_probe_helper.h>
|
||||
#include <drm/i2c/ch7006.h>
|
||||
|
||||
#include <dispnv04/i2c/ch7006.h>
|
||||
|
||||
typedef int64_t fixed;
|
||||
#define fixed1 (1LL << 32)
|
||||
@@ -30,7 +30,8 @@
|
||||
#include <drm/drm_encoder_slave.h>
|
||||
#include <drm/drm_print.h>
|
||||
#include <drm/drm_probe_helper.h>
|
||||
#include <drm/i2c/sil164.h>
|
||||
|
||||
#include <dispnv04/i2c/sil164.h>
|
||||
|
||||
struct sil164_priv {
|
||||
struct sil164_encoder_params config;
|
||||
@@ -32,7 +32,7 @@
|
||||
#include "hw.h"
|
||||
#include <drm/drm_modeset_helper_vtables.h>
|
||||
|
||||
#include <drm/i2c/ch7006.h>
|
||||
#include <dispnv04/i2c/ch7006.h>
|
||||
|
||||
static struct nvkm_i2c_bus_probe nv04_tv_encoder_info[] = {
|
||||
{
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __DRM_I2C_CH7006_H__
|
||||
#define __DRM_I2C_CH7006_H__
|
||||
#ifndef __NOUVEAU_I2C_CH7006_H__
|
||||
#define __NOUVEAU_I2C_CH7006_H__
|
||||
|
||||
/**
|
||||
* struct ch7006_encoder_params
|
||||
@@ -24,8 +24,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __DRM_I2C_SIL164_H__
|
||||
#define __DRM_I2C_SIL164_H__
|
||||
#ifndef __NOUVEAU_I2C_SIL164_H__
|
||||
#define __NOUVEAU_I2C_SIL164_H__
|
||||
|
||||
/**
|
||||
* struct sil164_encoder_params
|
||||
Reference in New Issue
Block a user