via_aux_vt1632.c 810 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Copyright 2011 Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
  4. */
  5. /*
  6. * driver for VIA VT1632 DVI Transmitter
  7. */
  8. #include <linux/slab.h>
  9. #include "via_aux.h"
  10. static const char *name = "VT1632 DVI Transmitter";
  11. static void probe(struct via_aux_bus *bus, u8 addr)
  12. {
  13. struct via_aux_drv drv = {
  14. .bus = bus,
  15. .addr = addr,
  16. .name = name};
  17. /* check vendor id and device id */
  18. const u8 id[] = {0x06, 0x11, 0x92, 0x31}, len = ARRAY_SIZE(id);
  19. u8 tmp[ARRAY_SIZE(id)];
  20. if (!via_aux_read(&drv, 0x00, tmp, len) || memcmp(id, tmp, len))
  21. return;
  22. printk(KERN_INFO "viafb: Found %s at address 0x%x\n", name, addr);
  23. via_aux_add(&drv);
  24. }
  25. void via_aux_vt1632_probe(struct via_aux_bus *bus)
  26. {
  27. u8 i;
  28. for (i = 0x08; i <= 0x0F; i++)
  29. probe(bus, i);
  30. }