~ubuntu-branches/ubuntu/trusty/grub2/trusty

« back to all changes in this revision

Viewing changes to grub-core/video/sm712.c

  • Committer: Package Import Robot
  • Author(s): Colin Watson
  • Date: 2014-01-16 15:18:04 UTC
  • mfrom: (17.6.38 experimental)
  • Revision ID: package-import@ubuntu.com-20140116151804-3foouk7fpqcq3sxx
Tags: 2.02~beta2-2
* Convert patch handling to git-dpm.
* Add bi-endian support to ELF parser (Tomohiro B Berry).
* Adjust restore_mkdevicemap.patch to mark get_kfreebsd_version as static,
  to appease "gcc -Werror=missing-prototypes".
* Cherry-pick from upstream:
  - Change grub-macbless' manual page section to 8.
* Install grub-glue-efi, grub-macbless, grub-render-label, and
  grub-syslinux2cfg.
* grub-shell: Pass -no-pad to xorriso when building floppy images.

Show diffs side-by-side

added added

removed removed

Lines of Context:
360
360
                       GRUB_SM712_CR_DDA_LOOKUP_REG1_START + idx);
361
361
}
362
362
 
 
363
#if !defined (TEST) && !defined(GENINIT)
 
364
/* Helper for grub_video_sm712_setup.  */
 
365
static int
 
366
find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data)
 
367
{
 
368
  int *found = data;
 
369
  grub_pci_address_t addr;
 
370
  grub_uint32_t class;
 
371
 
 
372
  addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS);
 
373
  class = grub_pci_read (addr);
 
374
 
 
375
  if (((class >> 16) & 0xffff) != GRUB_PCI_CLASS_SUBCLASS_VGA
 
376
      || pciid != GRUB_SM712_PCIID)
 
377
    return 0;
 
378
  
 
379
  *found = 1;
 
380
 
 
381
  addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG0);
 
382
  framebuffer.base = grub_pci_read (addr);
 
383
  framebuffer.dev = dev;
 
384
 
 
385
  return 1;
 
386
}
 
387
#endif
 
388
 
363
389
static grub_err_t
364
390
grub_video_sm712_setup (unsigned int width, unsigned int height,
365
391
                        unsigned int mode_type, unsigned int mode_mask __attribute__ ((unused)))
370
396
  grub_err_t err;
371
397
  int found = 0;
372
398
 
373
 
  auto int NESTED_FUNC_ATTR find_card (grub_pci_device_t dev, grub_pci_id_t pciid __attribute__ ((unused)));
374
 
  int NESTED_FUNC_ATTR find_card (grub_pci_device_t dev, grub_pci_id_t pciid __attribute__ ((unused)))
375
 
    {
376
 
      grub_pci_address_t addr;
377
 
      grub_uint32_t class;
378
 
 
379
 
      addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS);
380
 
      class = grub_pci_read (addr);
381
 
 
382
 
      if (((class >> 16) & 0xffff) != GRUB_PCI_CLASS_SUBCLASS_VGA
383
 
          || pciid != GRUB_SM712_PCIID)
384
 
        return 0;
385
 
      
386
 
      found = 1;
387
 
 
388
 
      addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG0);
389
 
      framebuffer.base = grub_pci_read (addr);
390
 
      framebuffer.dev = dev;
391
 
 
392
 
      return 1;
393
 
    }
394
 
 
395
399
  /* Decode depth from mode_type.  If it is zero, then autodetect.  */
396
400
  depth = (mode_type & GRUB_VIDEO_MODE_TYPE_DEPTH_MASK)
397
401
          >> GRUB_VIDEO_MODE_TYPE_DEPTH_POS;
401
405
    return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
402
406
                       "Only 1024x600x16 is supported");
403
407
 
404
 
  grub_pci_iterate (find_card);
 
408
  grub_pci_iterate (find_card, &found);
405
409
  if (!found)
406
410
    return grub_error (GRUB_ERR_IO, "Couldn't find graphics card");
407
411
  /* Fill mode info details.  */
775
779
    .get_palette = grub_video_fb_get_palette,
776
780
    .set_viewport = grub_video_fb_set_viewport,
777
781
    .get_viewport = grub_video_fb_get_viewport,
 
782
    .set_region = grub_video_fb_set_region,
 
783
    .get_region = grub_video_fb_get_region,
 
784
    .set_area_status = grub_video_fb_set_area_status,
 
785
    .get_area_status = grub_video_fb_get_area_status,
778
786
    .map_color = grub_video_fb_map_color,
779
787
    .map_rgb = grub_video_fb_map_rgb,
780
788
    .map_rgba = grub_video_fb_map_rgba,
792
800
    .next = 0
793
801
  };
794
802
 
795
 
#ifdef GRUB_MACHINE_MIPS_LOONGSON
796
 
void grub_video_sm712_init (void)
797
 
#else
798
803
GRUB_MOD_INIT(video_sm712)
799
 
#endif
800
804
{
801
805
  grub_video_register (&grub_video_sm712_adapter);
802
806
}
803
807
 
804
 
#ifdef GRUB_MACHINE_MIPS_LOONGSON
805
 
void grub_video_sm712_fini (void)
806
 
#else
807
808
GRUB_MOD_FINI(video_sm712)
808
 
#endif
809
809
{
810
810
  grub_video_unregister (&grub_video_sm712_adapter);
811
811
}