[PATCH] agp/intel: Fix dma mask for Sandybridge
Takashi Iwai
tiwai at suse.de
Sun Aug 22 23:13:33 PDT 2010
At Mon, 23 Aug 2010 08:02:42 +0200,
I wrote:
>
> At Mon, 23 Aug 2010 13:43:03 +0800,
> Zhenyu Wang wrote:
> >
> > On 2010.08.23 07:29:29 +0200, Takashi Iwai wrote:
> > > > Sandybridge can do 40-bit dma mask. This has been fixed upstream now.
> > >
> > > Could you point where is the upstream GIT tree and the corresponding
> > > commit id?
> > >
> >
> > Linus's tree:
> >
> > commit 877fdacf8291d7627f339885b5ae52c2f6061734
> > Author: Zhenyu Wang <zhenyuw at linux.intel.com>
> > Date: Thu Aug 19 09:46:13 2010 +0800
> >
> > agp/intel: set 40-bit dma mask on Sandybridge
> >
> > Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
> > Signed-off-by: Eric Anholt <eric at anholt.net>
>
> Thanks.
>
> But, isn't it better to add .dma_mask field to struct
> agp_bridge_driver?
>
> Also, I don't understand the logic of 40bit addr calculation:
>
> > static unsigned long intel_gen6_mask_memory(struct agp_bridge_data *bridge,
> > dma_addr_t addr, int type)
> > {
> > /* Shift high bits down */
> > addr |= (addr >> 28) & 0xff;
>
> Isn't it 0xff0?
Or, it's rather meant (addr >> 32) & 0xff?
If so, better to be upper_32_bits(addr) & 0xff...
thanks,
Takashi
More information about the dri-devel
mailing list