[PATCH 3/8] drm/loongson: Allow attach drm bridge driver by calling lsdc_output_init()
Sui Jingfeng
suijingfeng at loongson.cn
Mon Oct 30 09:13:57 UTC 2023
Hi,
On 2023/10/30 07:10, Dmitry Baryshkov wrote:
>> +
>> +static void lsdc_pipe1_hdmi_encoder_reset(struct drm_encoder *encoder)
>> +{
>> + struct drm_device *ddev = encoder->dev;
>> + struct lsdc_device *ldev = to_lsdc(ddev);
>> + u32 val;
>> +
>> + val = PHY_CLOCK_POL | PHY_CLOCK_EN | PHY_DATA_EN;
>> + lsdc_wreg32(ldev, LSDC_CRTC1_DVO_CONF_REG, val);
>> +
>> + /* Using built-in GPIO emulated I2C instead of the hardware I2C */
>> + lsdc_ureg32_clr(ldev, LSDC_HDMI1_INTF_CTRL_REG, HW_I2C_EN);
>> +
>> + /* Help the HDMI phy get out of reset state */
>> + lsdc_wreg32(ldev, LSDC_HDMI1_PHY_CTRL_REG, HDMI_PHY_RESET_N);
>> +
>> + drm_dbg(ddev, "%s reset\n", encoder->name);
>> +
>> + mdelay(20);
>> +}
>> +
>> +const struct drm_encoder_funcs lsdc_pipe1_hdmi_encoder_funcs = {
>> + .reset = lsdc_pipe1_hdmi_encoder_reset,
>> + .destroy = drm_encoder_cleanup,
>> +};
>> +
>> +/* Built-in DVO encoder helper funcs */
>> +
>> +static void lsdc_dvo_atomic_disable(struct drm_encoder *encoder,
>> + struct drm_atomic_state *state)
>> +{
>> +}
>> +
>> +static void lsdc_dvo_atomic_enable(struct drm_encoder *encoder,
>> + struct drm_atomic_state *state)
>> +{
>> +}
>> +
>> +static void lsdc_dvo_atomic_modeset(struct drm_encoder *encoder,
>> + struct drm_crtc_state *crtc_state,
>> + struct drm_connector_state *conn_state)
>> +{
>> +}
> You do not need these empty callbacks, do you?
Thanks a lot for the sharpen eyes.
Yes. I do not need these empty callbacks.
I have some program experience with Linux-4.19 kernel.
I clearly remember that these empty callbacks was need when I add lt8619 display bridge driver.
I have just remove it and tested, it seems that those is not need anymore.
Thanks a lot for review, this problem will be fixed at the next version.
More information about the dri-devel
mailing list