Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.69 KB | None | 0 0
  1. diff --git a/drivers/media/i2c/smia/et8ek8.c b/drivers/media/i2c/smia/et8ek8.c
  2. index cd66a27..12e55bc 100644
  3. --- a/drivers/media/i2c/smia/et8ek8.c
  4. +++ b/drivers/media/i2c/smia/et8ek8.c
  5. @@ -673,16 +673,16 @@ static struct smia_meta_reglist et8ek8_smia_meta_reglist = {
  6.     .magic   = SMIA_MAGIC,
  7.     .version = "V14 03-June-2008",
  8.     .reglist = {
  9. -       { .offset = (uintptr_t)&mode1_poweron_mode2_16vga_2592x1968_12_07fps },
  10. -       { .offset = (uintptr_t)&mode1_16vga_2592x1968_13_12fps_dpcm10_8 },
  11. -       { .offset = (uintptr_t)&mode3_4vga_1296x984_29_99fps_dpcm10_8 },
  12. -       { .offset = (uintptr_t)&mode4_svga_864x656_29_88fps },
  13. -       { .offset = (uintptr_t)&mode5_vga_648x492_29_93fps },
  14. -       { .offset = (uintptr_t)&mode2_16vga_2592x1968_3_99fps },
  15. -       { .offset = (uintptr_t)&mode_648x492_5fps },
  16. -       { .offset = (uintptr_t)&mode3_4vga_1296x984_5fps },
  17. -       { .offset = (uintptr_t)&mode_4vga_1296x984_25fps_dpcm10_8 },
  18. -       { .offset = 0 }
  19. +       { .ptr = &mode1_poweron_mode2_16vga_2592x1968_12_07fps },
  20. +       { .ptr = &mode1_16vga_2592x1968_13_12fps_dpcm10_8 },
  21. +       { .ptr = &mode3_4vga_1296x984_29_99fps_dpcm10_8 },
  22. +       { .ptr = &mode4_svga_864x656_29_88fps },
  23. +       { .ptr = &mode5_vga_648x492_29_93fps },
  24. +       { .ptr = &mode2_16vga_2592x1968_3_99fps },
  25. +       { .ptr = &mode_648x492_5fps },
  26. +       { .ptr = &mode3_4vga_1296x984_5fps },
  27. +       { .ptr = &mode_4vga_1296x984_25fps_dpcm10_8 },
  28. +       { .ptr = 0 }
  29.     }
  30.  };
  31.  
  32. diff --git a/drivers/media/i2c/smia/smiaregs.c b/drivers/media/i2c/smia/smiaregs.c
  33. index a681e65..f88ac38 100644
  34. --- a/drivers/media/i2c/smia/smiaregs.c
  35. +++ b/drivers/media/i2c/smia/smiaregs.c
  36. @@ -217,8 +217,6 @@ static int smia_reglist_cmp(const void *a, const void *b)
  37.  
  38.  /*
  39.   * Prepare register list created by dcc-pulautin for use in kernel.
  40. - * The pointers in the list are actually offsets from the beginning of
  41. - * the blob.
  42.   */
  43.  int smia_reglist_import(struct smia_meta_reglist *meta)
  44.  {
  45. @@ -233,25 +231,17 @@ int smia_reglist_import(struct smia_meta_reglist *meta)
  46.     printk(KERN_ALERT "%s: meta_reglist version %s\n",
  47.            __func__, meta->version);
  48.  
  49. -   while (meta->reglist[nlists].offset != 0) {
  50. -       struct smia_reglist *list;
  51. -
  52. -       meta->reglist[nlists].offset =
  53. -           (uintptr_t)meta + meta->reglist[nlists].offset;
  54. -
  55. -       list = meta->reglist[nlists].ptr;
  56. -
  57. +   while (meta->reglist[nlists].ptr != NULL)
  58.         nlists++;
  59. -   }
  60.  
  61.     if (!nlists)
  62.         return -EINVAL;
  63.  
  64. -   sort(&meta->reglist[0].offset, nlists, sizeof(meta->reglist[0].offset),
  65. +   sort(&meta->reglist[0].ptr, nlists, sizeof(meta->reglist[0].ptr),
  66.          smia_reglist_cmp, NULL);
  67.  
  68.     nlists = 0;
  69. -   while (meta->reglist[nlists].offset != 0) {
  70. +   while (meta->reglist[nlists].ptr != NULL) {
  71.         struct smia_reglist *list;
  72.  
  73.         list = meta->reglist[nlists].ptr;
  74. @@ -264,7 +254,7 @@ int smia_reglist_import(struct smia_meta_reglist *meta)
  75.                list->mode.pixel_format,
  76.                list->mode.timeperframe.numerator,
  77.                list->mode.timeperframe.denominator,
  78. -              (void *)meta->reglist[nlists].offset);
  79. +              (void *)meta->reglist[nlists].ptr);
  80.  
  81.         nlists++;
  82.     }
  83. diff --git a/include/media/smiaregs.h b/include/media/smiaregs.h
  84. index caade3d..8d7e79d 100644
  85. --- a/include/media/smiaregs.h
  86. +++ b/include/media/smiaregs.h
  87. @@ -97,19 +97,7 @@ struct smia_reglist {
  88.  struct smia_meta_reglist {
  89.     u32 magic;
  90.     char version[SMIA_MAX_LEN];
  91. -   /*
  92. -    * When we generate a reglist, the objcopy program will put
  93. -    * here the list of addresses to reglists local to that object
  94. -    * file.
  95. -    *
  96. -    * In the kernel they serve as offsets inside the the register
  97. -    * list binary.
  98. -    *
  99. -    * The list must be NULL-terminated. That is expected by the
  100. -    * drivers.
  101. -    */
  102.     union {
  103. -       uintptr_t offset;
  104.         struct smia_reglist *ptr;
  105.     } reglist[];
  106.  };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement