[Intel-gfx] i915: enum intel_dpll_id cast

Kees Cook keescook at google.com
Wed Nov 22 20:54:49 UTC 2017


Hi,

While doing Clang test builds, this was reported:

drivers/gpu/drm/i915/intel_ddi.c:1481:30: warning: implicit conversion
from enumeration type 'enum port' to different enumeration type 'enum
intel_dpll_id' [-Wenum-conversion]
        enum intel_dpll_id pll_id = port;
                           ~~~~~~   ^~~~

Which is from:

static void bxt_ddi_clock_get(struct intel_encoder *encoder,
                                struct intel_crtc_state *pipe_config)
{
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        enum port port = intel_ddi_get_encoder_port(encoder);
        enum intel_dpll_id pll_id = port;

        pipe_config->port_clock = bxt_calc_pll_link(dev_priv, pll_id);
...
}

In looking at it, it seems to be harmless if as enum port has a
smaller range than enum intel_dpll_id. I just wanted to check if maybe
something might go weird, since DPLL_ID_LCPLL_2700 maybe ends up
getting seen as I915_MAX_PORTS?

enum port {
        PORT_NONE = -1,
        PORT_A = 0,
        PORT_B,
        PORT_C,
        PORT_D,
        PORT_E,
        I915_MAX_PORTS
};

enum intel_dpll_id {
...
        DPLL_ID_LCPLL_2700 = 5,
...
};


Thanks!

-Kees

-- 
Kees Cook
Pixel Security


More information about the Intel-gfx mailing list