drm/nouveau: Use drm_connector_for_each_possible_encoder()
Use drm_connector_for_each_possible_encoder() for iterating connector->encoder_ids[]. A bit more convenient not having to deal with the implementation details. v2: Replace drm_for_each_connector_encoder_ids() with drm_connector_for_each_possible_encoder() (Daniel) v3: Initialize nv_encoder to NULL to shut up gcc/smatch Cc: Dan Carpenter <dan.carpenter@oracle.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Ben Skeggs <bskeggs@redhat.com> Cc: nouveau@lists.freedesktop.org Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180702152927.13351-1-ville.syrjala@linux.intel.com
This commit is contained in:
Родитель
98c0e348c0
Коммит
ddba766dd0
|
@ -363,19 +363,11 @@ module_param_named(hdmimhz, nouveau_hdmimhz, int, 0400);
|
||||||
struct nouveau_encoder *
|
struct nouveau_encoder *
|
||||||
find_encoder(struct drm_connector *connector, int type)
|
find_encoder(struct drm_connector *connector, int type)
|
||||||
{
|
{
|
||||||
struct drm_device *dev = connector->dev;
|
|
||||||
struct nouveau_encoder *nv_encoder;
|
struct nouveau_encoder *nv_encoder;
|
||||||
struct drm_encoder *enc;
|
struct drm_encoder *enc;
|
||||||
int i, id;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
|
drm_connector_for_each_possible_encoder(connector, enc, i) {
|
||||||
id = connector->encoder_ids[i];
|
|
||||||
if (!id)
|
|
||||||
break;
|
|
||||||
|
|
||||||
enc = drm_encoder_find(dev, NULL, id);
|
|
||||||
if (!enc)
|
|
||||||
continue;
|
|
||||||
nv_encoder = nouveau_encoder(enc);
|
nv_encoder = nouveau_encoder(enc);
|
||||||
|
|
||||||
if (type == DCB_OUTPUT_ANY ||
|
if (type == DCB_OUTPUT_ANY ||
|
||||||
|
@ -420,7 +412,7 @@ nouveau_connector_ddc_detect(struct drm_connector *connector)
|
||||||
struct nouveau_connector *nv_connector = nouveau_connector(connector);
|
struct nouveau_connector *nv_connector = nouveau_connector(connector);
|
||||||
struct nouveau_drm *drm = nouveau_drm(dev);
|
struct nouveau_drm *drm = nouveau_drm(dev);
|
||||||
struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device);
|
struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device);
|
||||||
struct nouveau_encoder *nv_encoder;
|
struct nouveau_encoder *nv_encoder = NULL;
|
||||||
struct drm_encoder *encoder;
|
struct drm_encoder *encoder;
|
||||||
int i, panel = -ENODEV;
|
int i, panel = -ENODEV;
|
||||||
|
|
||||||
|
@ -436,14 +428,7 @@ nouveau_connector_ddc_detect(struct drm_connector *connector)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; nv_encoder = NULL, i < DRM_CONNECTOR_MAX_ENCODER; i++) {
|
drm_connector_for_each_possible_encoder(connector, encoder, i) {
|
||||||
int id = connector->encoder_ids[i];
|
|
||||||
if (id == 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
encoder = drm_encoder_find(dev, NULL, id);
|
|
||||||
if (!encoder)
|
|
||||||
continue;
|
|
||||||
nv_encoder = nouveau_encoder(encoder);
|
nv_encoder = nouveau_encoder(encoder);
|
||||||
|
|
||||||
if (nv_encoder->dcb->type == DCB_OUTPUT_DP) {
|
if (nv_encoder->dcb->type == DCB_OUTPUT_DP) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче