[PATCH libdrm] omap: add omapdrm support
Rob Clark
rob.clark at linaro.org
Wed Mar 28 09:19:46 PDT 2012
On Wed, Mar 28, 2012 at 9:39 AM, Luca Tettamanti <kronos.it at gmail.com> wrote:
> Hi Rob,
> I've a couple of (minor) comments:
>
> On Wed, Mar 21, 2012 at 01:00:36PM -0500, Rob Clark wrote:
>> --- /dev/null
>> +++ b/omap/omap_drm.c
> [...]
>> +/* allocate a new (un-tiled) buffer object */
>> +struct omap_bo * omap_bo_new(struct omap_device *dev,
>> + uint32_t size, uint32_t flags)
>> +{
>> + if (flags & OMAP_BO_TILED) {
>> + return NULL;
>> + }
>> + return omap_bo_new_impl(dev, (union omap_gem_size){
>> + .bytes = size,
>> + }, flags);
>
> Hum, the indentation of the anonymous union looks weird (but maybe it's just
> me...)
>
>> +}
>> +
>> +/* allocate a new buffer object */
>> +struct omap_bo * omap_bo_new_tiled(struct omap_device *dev,
>> + uint32_t width, uint32_t height, uint32_t flags)
>> +{
>> + if (!(flags & OMAP_BO_TILED)) {
>> + return NULL;
>> + }
>> + return omap_bo_new_impl(dev, (union omap_gem_size){
>> + .tiled = {
>> + .width = width,
>> + .height = height,
>> + },
>> + }, flags);
>> +}
>
> Here too :-) What about this:
>
> return omap_bo_new_impl(dev, (union omap_gem_size)
> {
> .stuff = blah,
> });
>
> Or just use a temp var?
ok, open brace on same line seemed somehow more consistent with coding
style for open brace not on a new line, but I think I should just
change to temp var if that is less strange looking
>> +
>> +/* get buffer info */
>> +static int get_buffer_info(struct omap_bo *bo)
>> +{
>> + struct drm_omap_gem_info req = {
>> + .handle = bo->handle,
>> + };
>> + int ret = drmCommandWriteRead(bo->dev->fd, DRM_OMAP_GEM_INFO,
>> + &req, sizeof(req));
>> + if (ret) {
>> + return ret;
>> + }
>> +
>> + /* really all we need for now is mmap offset */
>> + bo->offset = req.offset;
>> + bo->size = req.size;
>> +
>> + return 0;
>> +}
>> +
>> +/* import a buffer object from DRI2 name */
>> +struct omap_bo * omap_bo_from_name(struct omap_device *dev, uint32_t name)
>> +{
>> + struct omap_bo *bo = calloc(sizeof(*bo), 1);
>> + struct drm_gem_open req = {
>> + .name = name,
>> + };
>> +
>> + if (drmIoctl(dev->fd, DRM_IOCTL_GEM_OPEN, &req)) {
>> + goto fail;
>> + }
>
> bo may be NULL here:
ok, good point, I'll fix this
BR,
-R
>> +
>> + bo->dev = dev;
>> + bo->name = name;
>> + bo->handle = req.handle;
>
> I also woundn't use the calloc in the initialization block, I prefer to
> keep the allocation and the check together:
>
> bo = alloc_stuff();
> if (!bo)
> oh_crap();
>
> I find it more easy to check visually.
>
> Luca
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the dri-devel
mailing list