Re: [PATCH v2 2/7] staging: unisys: visorinput: remove need for 'depends on FB'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 16, 2015 at 03:22:12PM -0500, Benjamin Romer wrote:
> From: Tim Sell <Timothy.Sell@xxxxxxxxxx>
> 
> Previously, we used a hack to determine the max x,y resolution of the
> visor virtual mouse: we just looked at the resolution of the
> first-registered framebuffer device, using the currently-valid assumption
> that in a Unisys s-Par guest environment the video will be provided by an
> efifb framebuffer device.
> 
> This hack has been removed, by instead determining the default mouse
> resolution by looking at fields within the visor mouse channel memory,
> mouse.x_resolution and mouse.y_resolution.  If these fields are 0, a
> default resolution of 1024x768 is assumed.  Note that in current
> implementations, mouse.x_resolution and mouse.y_resolution are always just
> initialized to 0 by the back-end, and only 1024x768 is supported, but
> coding it this way will allow other resolutions to work in the future.
> 
> Signed-off-by: Tim Sell <Timothy.Sell@xxxxxxxxxx>
> Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
> 
> ---
> v2: the patch was resubmitted.
> ---
>  drivers/staging/unisys/visorinput/Kconfig      |  2 +-
>  drivers/staging/unisys/visorinput/visorinput.c | 63 +++++++++++++++++++++-----
>  2 files changed, 52 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/staging/unisys/visorinput/Kconfig b/drivers/staging/unisys/visorinput/Kconfig
> index d83deb4..1c5a072 100644
> --- a/drivers/staging/unisys/visorinput/Kconfig
> +++ b/drivers/staging/unisys/visorinput/Kconfig
> @@ -4,7 +4,7 @@
>  
>  config UNISYS_VISORINPUT
>  	tristate "Unisys visorinput driver"
> -	depends on UNISYSSPAR && UNISYS_VISORBUS && FB
> +	depends on UNISYSSPAR && UNISYS_VISORBUS
>  	---help---
>  	If you say Y here, you will enable the Unisys visorinput driver.
>  
> diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c
> index 238a132..4620a49 100644
> --- a/drivers/staging/unisys/visorinput/visorinput.c
> +++ b/drivers/staging/unisys/visorinput/visorinput.c
> @@ -47,8 +47,38 @@
>  #define SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR \
>  	"addf07d4-94a9-46e2-81c3-61abcdbdbd87"
>  
> -#define PIXELS_ACROSS_DEFAULT	800
> -#define PIXELS_DOWN_DEFAULT	600
> +/* header of keyboard/mouse channels */
> +struct spar_input_channel_protocol {
> +	struct channel_header channel_header;
> +	u32 n_input_reports;
> +	union {
> +		struct {
> +			u16 x_resolution;
> +			u16 y_resolution;

If these cross the kernel/user boundry, use __u16 please.


> +		} mouse;
> +		struct {
> +			u32 flags;

__u32?


> +		} keyboard;
> +	};
> +} __packed;
> +
> +#define sizeofmemb(TYPE, MEMBER) sizeof(((TYPE *)0)->MEMBER)

We really don't have this type of macro already?


> +
> +static unsigned read_input_channel_uint(struct visor_device *dev,
> +					unsigned offset, unsigned size)
> +{
> +	unsigned v = 0;
> +
> +	if (visorbus_read_channel(dev, offset, &v, size)) {
> +		dev_warn(&dev->device,
> +			 "failed to read channel int at offset %u\n", offset);
> +		return 0;
> +	}
> +	return v;
> +}
> +
> +#define PIXELS_ACROSS_DEFAULT	1024
> +#define PIXELS_DOWN_DEFAULT	768
>  #define KEYCODE_TABLE_BYTES	256
>  
>  enum visorinput_device_type {
> @@ -298,12 +328,11 @@ register_client_keyboard(void *devdata,  /* opaque on purpose */
>  }
>  
>  static struct input_dev *
> -register_client_mouse(void *devdata /* opaque on purpose */)
> +register_client_mouse(void *devdata /* opaque on purpose */,

Why on purpose?  When is that going to be fixed?

thanks,

greg k-h
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux