On 23/06/16 16:13, Archit Taneja wrote: > Introduce new compatible strings for the top level MDSS wrapper device, > and the MDP5 device. > > Previously, the "qcom,mdp5" and "qcom,mdss_mdp" compatible strings > were used to match the top level platform_device (which was also tied > to the top level drm_device struct). Now, these strings are used > to match the MDP5 platform device. > > Use "qcom,mdss" as the compatible string for top level MDSS device. > This is now used to match the top level platform_device (which is > tied to the drm_device struct). > > Signed-off-by: Archit Taneja <architt at codeaurora.org> > --- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 10 +++++++++- > drivers/gpu/drm/msm/msm_drv.c | 6 ++---- > 2 files changed, 11 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c > b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c > index 174d7e7..a2bd6a4 100644 > --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c > +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c > @@ -809,12 +809,20 @@ static int mdp5_dev_remove(struct platform_device *pdev) > return 0; > } > > +static const struct of_device_id dt_match[] = { > + { .compatible = "qcom,mdp5", }, > + /* to support downstream DT files */ > + { .compatible = "qcom,mdss_mdp", }, > + {} > +}; > +MODULE_DEVICE_TABLE(of, dt_match); > + > static struct platform_driver mdp5_driver = { > .probe = mdp5_dev_probe, > .remove = mdp5_dev_remove, > .driver = { > .name = "msm_mdp", > - /* Add a DT match field once we move to new hierarchy */ > + .of_match_table = dt_match, > }, > }; > > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c > index be8f73a..f133dd5 100644 > --- a/drivers/gpu/drm/msm/msm_drv.c > +++ b/drivers/gpu/drm/msm/msm_drv.c > @@ -992,10 +992,8 @@ static int msm_pdev_remove(struct platform_device *pdev) > } > > static const struct of_device_id dt_match[] = { > - { .compatible = "qcom,mdp4", .data = (void *) 4 }, /* mdp4 */ > - { .compatible = "qcom,mdp5", .data = (void *) 5 }, /* mdp5 */ > - /* to support downstream DT files */ > - { .compatible = "qcom,mdss_mdp", .data = (void *) 5 }, /* mdp5 */ > + { .compatible = "qcom,mdp4", .data = (void *)4 }, /* MDP4 */ > + { .compatible = "qcom,mdss", .data = (void *)5 }, /* MDP5 MDSS */
This seems to break linux-next: [ 3945s] CC [M] drivers/gpu/drm/nouveau/nvkm/core/ioctl.o [ 3947s] LD [M] drivers/gpu/drm/msm/msm.o [ 3947s] drivers/gpu/drm/msm/msm_drv.o:(.rodata+0x300): multiple definition of `__mod_of__dt_match_device_table' [ 3947s] drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.o:(.rodata+0x1b0): first defined here [ 3947s] make[6]: *** [../scripts/Makefile.build:427: drivers/gpu/drm/msm/msm.o] Error 1 [ 3947s] make[5]: *** [../scripts/Makefile.build:440: drivers/gpu/drm/msm] Error 2 [ 3947s] make[5]: *** Waiting for unfinished jobs.... Reverting commit b71a717c955a ("drm/msm/mdp5: Update compatible strings for MDSS/MDP5") fixes the compilation error. Regards, Matthias