[PATCH v4 1/6] drm: add SimpleDRM driver

David Herrmann dh.herrmann at gmail.com
Wed Oct 2 17:09:18 CEST 2013


Hi Tom

On Sat, Sep 21, 2013 at 4:18 PM, Tom Gundersen <teg at jklm.no> wrote:
> Hi David,
>
> On Sun, Sep 1, 2013 at 3:36 PM, David Herrmann <dh.herrmann at gmail.com> wrote:
>> The SimpleDRM driver binds to simple-framebuffer devices and provides a
>> DRM/KMS API. It provides only a single CRTC+encoder+connector combination
>> plus one initial mode.
>>
>> Userspace can create one dumb-buffer and attach it to the CRTC. Only if
>> the buffer is destroyed, a new buffer can be created. The buffer is
>> directly mapped into user-space, so we have only resources for a single
>> buffer. Otherwise, shadow buffers plus damage-request would be needed.
>>
>> Signed-off-by: David Herrmann <dh.herrmann at gmail.com>
>> Tested-by: Stephen Warren <swarren at nvidia.com>
>> ---
>
> [...]
>
>> +static int sdrm_conn_fill_modes(struct drm_connector *conn, uint32_t max_x,
>> +                               uint32_t max_y)
>> +{
>> +       struct sdrm_device *sdrm = conn->dev->dev_private;
>> +       struct drm_display_mode *mode;
>> +       int ret;
>> +
>> +       if (conn->force == DRM_FORCE_ON)
>> +               conn->status = connector_status_connected;
>> +       else if (conn->force)
>> +               conn->status = connector_status_disconnected;
>> +       else
>> +               conn->status = connector_status_connected;
>> +
>> +       list_for_each_entry(mode, &conn->modes, head)
>> +               mode->status = MODE_UNVERIFIED;
>> +
>> +       mode = drm_gtf_mode(sdrm->ddev, sdrm->fb_width, sdrm->fb_height,
>> +                           60, 0, 0);
>> +       if (mode) {
>> +               mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
>> +               drm_mode_probed_add(conn, mode);
>> +               sdrm->mode = mode;
>
> Should you also be setting sdrm->fb_{width,height} to
> mode->{v,h}display here? Otherwise, due to the rounding in
> drm_gtf_mode(), these values won't necessarily match (which I suppose
> they must?).

What the ****. I wasn't aware drm_gtf_mode() modifies the v/hdisplay
values. Hm.. I will probably have to use something else then.

Thanks
David


More information about the dri-devel mailing list