Commit 8d9a8d9b authored by Zack Rusin's avatar Zack Rusin
Browse files

drm/vmwgfx: inline access to the pages from the piter



The indirection doesn't make sense because we always go through
the same function pointer. Instead of the extra indirection
lets inline the access to the current page.

Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
Reviewed-by: default avatarMartin Krastev <krastevm@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210609172307.131929-7-zackr@vmware.com
parent f674a218
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -358,7 +358,6 @@ struct vmw_piter {
	unsigned long num_pages;
	bool (*next)(struct vmw_piter *);
	dma_addr_t (*dma_address)(struct vmw_piter *);
	struct page *(*page)(struct vmw_piter *);
};

/*
@@ -1088,7 +1087,7 @@ static inline dma_addr_t vmw_piter_dma_addr(struct vmw_piter *viter)
 */
static inline struct page *vmw_piter_page(struct vmw_piter *viter)
{
	return viter->page(viter);
	return viter->pages[viter->i];
}

/**
+0 −16
Original line number Diff line number Diff line
@@ -222,21 +222,6 @@ static bool __vmw_piter_sg_next(struct vmw_piter *viter)
}


/**
 * __vmw_piter_non_sg_page: Helper functions to return a pointer
 * to the current page.
 *
 * @viter: Pointer to the iterator
 *
 * These functions return a pointer to the page currently
 * pointed to by @viter. Functions are selected depending on the
 * current mapping mode.
 */
static struct page *__vmw_piter_non_sg_page(struct vmw_piter *viter)
{
	return viter->pages[viter->i];
}

static dma_addr_t __vmw_piter_dma_addr(struct vmw_piter *viter)
{
	return viter->addrs[viter->i];
@@ -264,7 +249,6 @@ void vmw_piter_start(struct vmw_piter *viter, const struct vmw_sg_table *vsgt,
{
	viter->i = p_offset - 1;
	viter->num_pages = vsgt->num_pages;
	viter->page = &__vmw_piter_non_sg_page;
	viter->pages = vsgt->pages;
	switch (vsgt->mode) {
	case vmw_dma_alloc_coherent: