diff options
Diffstat (limited to 'drivers/gpu/drm/udl/udl_transfer.c')
| -rw-r--r-- | drivers/gpu/drm/udl/udl_transfer.c | 46 | 
1 files changed, 5 insertions, 41 deletions
diff --git a/drivers/gpu/drm/udl/udl_transfer.c b/drivers/gpu/drm/udl/udl_transfer.c index 971927669d6b..b57844632dbd 100644 --- a/drivers/gpu/drm/udl/udl_transfer.c +++ b/drivers/gpu/drm/udl/udl_transfer.c @@ -25,46 +25,6 @@  #define MIN_RAW_PIX_BYTES	2  #define MIN_RAW_CMD_BYTES	(RAW_HEADER_BYTES + MIN_RAW_PIX_BYTES) -/* - * Trims identical data from front and back of line - * Sets new front buffer address and width - * And returns byte count of identical pixels - * Assumes CPU natural alignment (unsigned long) - * for back and front buffer ptrs and width - */ -#if 0 -static int udl_trim_hline(const u8 *bback, const u8 **bfront, int *width_bytes) -{ -	int j, k; -	const unsigned long *back = (const unsigned long *) bback; -	const unsigned long *front = (const unsigned long *) *bfront; -	const int width = *width_bytes / sizeof(unsigned long); -	int identical = width; -	int start = width; -	int end = width; - -	for (j = 0; j < width; j++) { -		if (back[j] != front[j]) { -			start = j; -			break; -		} -	} - -	for (k = width - 1; k > j; k--) { -		if (back[k] != front[k]) { -			end = k+1; -			break; -		} -	} - -	identical = start + (width - end); -	*bfront = (u8 *) &front[start]; -	*width_bytes = (end - start) * sizeof(unsigned long); - -	return identical * sizeof(unsigned long); -} -#endif -  static inline u16 pixel32_to_be16(const uint32_t pixel)  {  	return (((pixel >> 3) & 0x001f) | @@ -220,7 +180,11 @@ int udl_render_hline(struct drm_device *dev, int log_bpp, struct urb **urb_ptr,  	u8 *cmd = *urb_buf_ptr;  	u8 *cmd_end = (u8 *) urb->transfer_buffer + urb->transfer_buffer_length; -	BUG_ON(!(log_bpp == 1 || log_bpp == 2)); +	if (WARN_ON(!(log_bpp == 1 || log_bpp == 2))) { +		/* need to finish URB at error from this function */ +		udl_urb_completion(urb); +		return -EINVAL; +	}  	line_start = (u8 *) (front + byte_offset);  	next_pixel = line_start;  |