FYI, this patch works here.  Now I have a working current DRI with DRM
1.22.0.

Adam


> Hi list!
> 
> I am very happy to announce that I got my Radeon X600 working on both
> Linux/i386 and FreeBSD/amd64. I needed to apply Benjamin's latest
> patches and also the small attached patch for FreeBSD. The biggest
> problem (that caused the crahes on FreeBSD) was that the virtual field
> of the struct drm_sg_mem_t was never initialized.
> 
> BTW, I think the PCI ID of this card (0x5b62) should be added to the
> drm_pciids.txt
> 
> Thanks for your great work!
> 
>       Markus
> 
> 
> 
> Index: drmP.h
> ===================================================================
> RCS file: /cvs/dri/drm/bsd-core/drmP.h,v
> retrieving revision 1.73
> diff -w -u -d -r1.73 drmP.h
> --- drmP.h    8 Nov 2005 20:24:59 -0000       1.73
> +++ drmP.h    29 Jan 2006 07:31:28 -0000
> @@ -341,7 +341,7 @@
>  #define DRM_COPY_FROM_USER_IOCTL(kern, user, size) \
>       if ( IOCPARM_LEN(cmd) != size)                  \
>               return EINVAL;                          \
> -     kern = *user;
> +     memcpy(&kern, user, size);
>  #define DRM_COPY_TO_USER(user, kern, size) \
>       copyout(kern, user, size)
>  #define DRM_COPY_FROM_USER(kern, user, size) \
> Index: drm_scatter.c
> ===================================================================
> RCS file: /cvs/dri/drm/bsd-core/drm_scatter.c,v
> retrieving revision 1.11
> diff -w -u -d -r1.11 drm_scatter.c
> --- drm_scatter.c     26 Apr 2005 05:19:11 -0000      1.11
> +++ drm_scatter.c     29 Jan 2006 07:31:28 -0000
> @@ -35,7 +35,7 @@
>  
>  void drm_sg_cleanup(drm_sg_mem_t *entry)
>  {
> -     free((void *)entry->handle, M_DRM);
> +     free(entry->virtual, M_DRM);
>       free(entry->busaddr, M_DRM);
>       free(entry, M_DRM);
>  }
> @@ -72,8 +72,9 @@
>               return ENOMEM;
>       }
>  
> -     entry->handle = (long)malloc(pages << PAGE_SHIFT, M_DRM,
> +     entry->virtual = malloc(pages << PAGE_SHIFT, M_DRM,
>           M_WAITOK | M_ZERO);
> +     entry->handle = (unsigned long)entry->virtual;
>       if (entry->handle == 0) {
>               drm_sg_cleanup(entry);
>               return ENOMEM;
> 



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to