sane-backends-1.0.22-qcam-x86.patch 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. [PATCH] backend/qcam.c: fix build on !x86
  2. inb/outb/ioperm are x86 specific interfaces, so replace with noops on
  3. !x86.
  4. Inspired by similar patch in openwrt:
  5. https://dev.openwrt.org/ticket/5689
  6. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
  7. ---
  8. backend/qcam.c | 14 +++++++++++++-
  9. 1 file changed, 13 insertions(+), 1 deletion(-)
  10. Index: sane-backends-1.0.22/backend/qcam.c
  11. ===================================================================
  12. --- sane-backends-1.0.22.orig/backend/qcam.c
  13. +++ sane-backends-1.0.22/backend/qcam.c
  14. @@ -205,12 +205,20 @@
  15. #endif /* <sys/io.h> || <asm/io.h> || <sys/hw.h> */
  16. +/* inb / outb only exist on x86 */
  17. +#if defined(__i386__) || defined(__x86_64__)
  18. #define read_lpdata(d) inb ((d)->port)
  19. #define read_lpstatus(d) inb ((d)->port + 1)
  20. #define read_lpcontrol(d) inb ((d)->port + 2)
  21. #define write_lpdata(d,v) outb ((v), (d)->port)
  22. #define write_lpcontrol(d,v) outb ((v), (d)->port + 2)
  23. -
  24. +#else
  25. +#define read_lpdata(d) 0
  26. +#define read_lpstatus(d) 0
  27. +#define read_lpcontrol(d) 0
  28. +#define write_lpdata(d,v)
  29. +#define write_lpcontrol(d,v)
  30. +#endif
  31. static SANE_Status
  32. enable_ports (QC_Device * q)
  33. @@ -219,8 +227,10 @@
  34. if (q->port < 0x278 || q->port > 0x3bc)
  35. return SANE_STATUS_INVAL;
  36. +#if defined(__i386__) || defined(__x86_64__)
  37. if (ioperm (q->port, 3, 1) < 0)
  38. return SANE_STATUS_INVAL;
  39. +#endif
  40. return SANE_STATUS_GOOD;
  41. }
  42. @@ -228,8 +238,10 @@
  43. static SANE_Status
  44. disable_ports (QC_Device * q)
  45. {
  46. +#if defined(__i386__) || defined(__x86_64__)
  47. if (ioperm (q->port, 3, 0) < 0)
  48. return SANE_STATUS_INVAL;
  49. +#endif
  50. return SANE_STATUS_GOOD;
  51. }