[bug report] gma500: initial medfield merge
Dan Carpenter
dan.carpenter at oracle.com
Wed Jun 28 11:30:18 UTC 2017
Hello Kirill A. Shutemov,
The patch 026abc333205: "gma500: initial medfield merge" from Mar 8,
2012, leads to the following static checker warning:
drivers/gpu/drm/gma500/mdfld_intel_display.c:102 mdfldWaitForPipeEnable()
warn: masked condition '(temp & (1 << 30)) == 1' is always false.
drivers/gpu/drm/gma500/mdfld_intel_display.c
79 void mdfldWaitForPipeEnable(struct drm_device *dev, int pipe)
80 {
81 struct drm_psb_private *dev_priv = dev->dev_private;
82 const struct psb_offset *map = &dev_priv->regmap[pipe];
83 int count, temp;
84
85 switch (pipe) {
86 case 0:
87 case 1:
88 case 2:
89 break;
90 default:
91 DRM_ERROR("Illegal Pipe Number.\n");
92 return;
93 }
94
95 /* FIXME JLIU7_PO */
96 gma_wait_for_vblank(dev);
97 return;
^^^^^^
It occurs to me that this early return might be a work around for the
minute long hang that follows. But there is an early return in Disable
as well, and I can't test this.
98
99 /* Wait for for the pipe enable to take effect. */
100 for (count = 0; count < COUNT_MAX; count++) {
101 temp = REG_READ(map->conf);
102 if ((temp & PIPEACONF_PIPE_STATE) == 1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This will never be true. It should just be:
if (temp & PIPEACONF_PIPE_STATE) {
So this loop will just go until we reach COUNT_MAX.
103 break;
104 }
105 }
regards,
dan carpenter
More information about the dri-devel
mailing list