CPU Cache and busdma usage in USB

Piotr Zięcik kosmo at semihalf.com
Mon Jun 29 13:07:33 UTC 2009


Monday 29 June 2009 13:37:41 Hans Petter Selasky napisał(a):
>                 if (op & BUS_DMASYNC_POSTREAD) {
>                         if (bpage->vaddr_nocache == 0) {
>                                 cpu_dcache_inv_range(bpage->vaddr,
>                                     bpage->datacount);
>                                 cpu_l2cache_inv_range(bpage->vaddr,
>                                     bpage->datacount);
>                         }
>                         bcopy((void *)(bpage->vaddr_nocache != 0 ?
>                             bpage->vaddr_nocache : bpage->vaddr),
>                             (void *)bpage->datavaddr, bpage->datacount);
>                         dmat->bounce_zone->total_bounced++;
>                 }
>
> Change: bpage->vaddr into (bpage->vaddr & ~arm_dcache_align_mask)
> Change: bpage->datacount into (bpage->datacount + (bpage->vaddr &
> arm_dcache_align_mask) + arm_dcache_align_mask - 1) &
> ~arm_dcache_align_mask;

I have checked above changes and I do not observe any changes
is USB behaviour. Problem still exists.

-- 
Best Regards.
Piotr Ziecik


More information about the freebsd-usb mailing list