typedef struct drm32_mga_init {
        int func;
        u32 sarea_priv_offset;
-       int chipset;
-       int sgram;
-       unsigned int maccess;
-       unsigned int fb_cpp;
-       unsigned int front_offset, front_pitch;
-       unsigned int back_offset, back_pitch;
-       unsigned int depth_cpp;
-       unsigned int depth_offset, depth_pitch;
-       unsigned int texture_offset[MGA_NR_TEX_HEAPS];
-       unsigned int texture_size[MGA_NR_TEX_HEAPS];
+       struct_group(always32bit,
+               int chipset;
+               int sgram;
+               unsigned int maccess;
+               unsigned int fb_cpp;
+               unsigned int front_offset, front_pitch;
+               unsigned int back_offset, back_pitch;
+               unsigned int depth_cpp;
+               unsigned int depth_offset, depth_pitch;
+               unsigned int texture_offset[MGA_NR_TEX_HEAPS];
+               unsigned int texture_size[MGA_NR_TEX_HEAPS];
+       );
        u32 fb_offset;
        u32 mmio_offset;
        u32 status_offset;
 
        init.func = init32.func;
        init.sarea_priv_offset = init32.sarea_priv_offset;
-       memcpy(&init.chipset, &init32.chipset,
-               offsetof(drm_mga_init_t, fb_offset) -
-               offsetof(drm_mga_init_t, chipset));
+       memcpy(&init.always32bit, &init32.always32bit,
+              sizeof(init32.always32bit));
        init.fb_offset = init32.fb_offset;
        init.mmio_offset = init32.mmio_offset;
        init.status_offset = init32.status_offset;
 
 
        unsigned long sarea_priv_offset;
 
-       int chipset;
-       int sgram;
+       __struct_group(/* no tag */, always32bit, /* no attrs */,
+               int chipset;
+               int sgram;
 
-       unsigned int maccess;
+               unsigned int maccess;
 
-       unsigned int fb_cpp;
-       unsigned int front_offset, front_pitch;
-       unsigned int back_offset, back_pitch;
+               unsigned int fb_cpp;
+               unsigned int front_offset, front_pitch;
+               unsigned int back_offset, back_pitch;
 
-       unsigned int depth_cpp;
-       unsigned int depth_offset, depth_pitch;
+               unsigned int depth_cpp;
+               unsigned int depth_offset, depth_pitch;
 
-       unsigned int texture_offset[MGA_NR_TEX_HEAPS];
-       unsigned int texture_size[MGA_NR_TEX_HEAPS];
+               unsigned int texture_offset[MGA_NR_TEX_HEAPS];
+               unsigned int texture_size[MGA_NR_TEX_HEAPS];
+       );
 
        unsigned long fb_offset;
        unsigned long mmio_offset;