[PATCH v2 08/14] OdevAttribute: Remove unowned flag from OdevAttributes head
Peter Hutterer
peter.hutterer at who-t.net
Tue Feb 11 06:55:56 CET 2014
On Tue, Feb 04, 2014 at 12:49:14PM +0100, Hans de Goede wrote:
> The OdevAttributes struct should just be a head of the attributes list, and
> not contain various unrelated flags. Instead add a flags field to
> struct xf86_platform_device and use that.
You just introduced int-type attributes, any reason you didn't just move
this into an attribute?
Cheers,
Peter
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> hw/xfree86/common/xf86Module.h | 2 +-
> hw/xfree86/common/xf86platformBus.c | 11 +++++++----
> hw/xfree86/common/xf86platformBus.h | 6 +++++-
> hw/xfree86/os-support/linux/lnx_platform.c | 5 ++---
> include/hotplug.h | 1 -
> 5 files changed, 15 insertions(+), 10 deletions(-)
>
> diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
> index 96ac3b0..e8c24f2 100644
> --- a/hw/xfree86/common/xf86Module.h
> +++ b/hw/xfree86/common/xf86Module.h
> @@ -80,7 +80,7 @@ typedef enum {
> * mask is 0xFFFF0000.
> */
> #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4)
> -#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(15, 0)
> +#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(16, 0)
> #define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 0)
> #define ABI_EXTENSION_VERSION SET_ABI_VERSION(8, 0)
> #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)
> diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
> index 7a9600a..97d606a 100644
> --- a/hw/xfree86/common/xf86platformBus.c
> +++ b/hw/xfree86/common/xf86platformBus.c
> @@ -55,7 +55,7 @@ int xf86_num_platform_devices;
> static struct xf86_platform_device *xf86_platform_devices;
>
> int
> -xf86_add_platform_device(struct OdevAttributes *attribs)
> +xf86_add_platform_device(struct OdevAttributes *attribs, Bool unowned)
> {
> xf86_platform_devices = xnfrealloc(xf86_platform_devices,
> (sizeof(struct xf86_platform_device)
> @@ -63,6 +63,8 @@ xf86_add_platform_device(struct OdevAttributes *attribs)
>
> xf86_platform_devices[xf86_num_platform_devices].attribs = attribs;
> xf86_platform_devices[xf86_num_platform_devices].pdev = NULL;
> + xf86_platform_devices[xf86_num_platform_devices].flags =
> + unowned ? XF86_PDEV_UNOWNED : 0;
>
> xf86_num_platform_devices++;
> return 0;
> @@ -122,7 +124,8 @@ xf86_get_platform_device_int_attrib(struct xf86_platform_device *device, int att
> Bool
> xf86_get_platform_device_unowned(int index)
> {
> - return xf86_platform_devices[index].attribs->unowned;
> + return (xf86_platform_devices[index].flags & XF86_PDEV_UNOWNED) ?
> + TRUE : FALSE;
> }
>
> /*
> @@ -529,10 +532,10 @@ void xf86platformVTProbe(void)
> int i;
>
> for (i = 0; i < xf86_num_platform_devices; i++) {
> - if (xf86_platform_devices[i].attribs->unowned == FALSE)
> + if (!(xf86_platform_devices[i].flags & XF86_PDEV_UNOWNED))
> continue;
>
> - xf86_platform_devices[i].attribs->unowned = FALSE;
> + xf86_platform_devices[i].flags &= ~XF86_PDEV_UNOWNED;
> xf86PlatformReprobeDevice(i, xf86_platform_devices[i].attribs);
> }
> }
> diff --git a/hw/xfree86/common/xf86platformBus.h b/hw/xfree86/common/xf86platformBus.h
> index d764026..9a49260 100644
> --- a/hw/xfree86/common/xf86platformBus.h
> +++ b/hw/xfree86/common/xf86platformBus.h
> @@ -30,8 +30,12 @@ struct xf86_platform_device {
> struct OdevAttributes *attribs;
> /* for PCI devices */
> struct pci_device *pdev;
> + int flags;
> };
>
> +/* xf86_platform_device flags */
> +#define XF86_PDEV_UNOWNED 0x01
> +
> #ifdef XSERVER_PLATFORM_BUS
> int xf86platformProbe(void);
> int xf86platformProbeDev(DriverPtr drvp);
> @@ -43,7 +47,7 @@ xf86_get_platform_attrib(int index, int attrib_id);
> extern int
> xf86_get_platform_int_attrib(int index, int attrib_id, int def);
> extern int
> -xf86_add_platform_device(struct OdevAttributes *attribs);
> +xf86_add_platform_device(struct OdevAttributes *attribs, Bool unowned);
> extern int
> xf86_remove_platform_device(int dev_index);
> extern Bool
> diff --git a/hw/xfree86/os-support/linux/lnx_platform.c b/hw/xfree86/os-support/linux/lnx_platform.c
> index 4317209..f4c4d12 100644
> --- a/hw/xfree86/os-support/linux/lnx_platform.c
> +++ b/hw/xfree86/os-support/linux/lnx_platform.c
> @@ -44,7 +44,7 @@ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index)
>
> /* for a delayed probe we've already added the device */
> if (delayed_index == -1) {
> - xf86_add_platform_device(attribs);
> + xf86_add_platform_device(attribs, FALSE);
> delayed_index = xf86_num_platform_devices - 1;
> }
>
> @@ -142,8 +142,7 @@ xf86PlatformDeviceProbe(struct OdevAttributes *attribs)
> if (!xf86VTOwner()) {
> /* if we don't currently own the VT then don't probe the device,
> just mark it as unowned for later use */
> - attribs->unowned = TRUE;
> - xf86_add_platform_device(attribs);
> + xf86_add_platform_device(attribs, TRUE);
> return;
> }
>
> diff --git a/include/hotplug.h b/include/hotplug.h
> index 6aa7d8d..70d80f8 100644
> --- a/include/hotplug.h
> +++ b/include/hotplug.h
> @@ -46,7 +46,6 @@ struct OdevAttribute {
>
> struct OdevAttributes {
> struct xorg_list list;
> - Bool unowned;
> };
>
> struct OdevAttributes *
> --
> 1.8.5.3
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>
More information about the xorg-devel
mailing list