DisplayState interface change (Stefano Stabellini)
[qemu] / hw / palm.c
index ac6ff80..739d3f8 100644 (file)
--- a/hw/palm.c
+++ b/hw/palm.c
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 #include "hw.h"
 #include "audio/audio.h"
@@ -85,6 +84,12 @@ static CPUWriteMemoryFunc *static_writefn[] = {
 #define PALMTE_MMC2_GPIO       7
 #define PALMTE_MMC3_GPIO       11
 
+static struct mouse_transform_info_s palmte_pointercal = {
+    .x = 320,
+    .y = 320,
+    .a = { -5909, 8, 22465308, 104, 7644, -1219972, 65536 },
+};
+
 static void palmte_microwire_setup(struct omap_mpu_state_s *cpu)
 {
     struct uwire_slave_s *tsc;
@@ -99,6 +104,8 @@ static void palmte_microwire_setup(struct omap_mpu_state_s *cpu)
 
     omap_uwire_attach(cpu->microwire, tsc, 0);
     omap_mcbsp_i2s_attach(cpu->mcbsp1, tsc210x_codec(tsc));
+
+    tsc210x_set_transform(tsc, &palmte_pointercal);
 }
 
 static struct {
@@ -192,7 +199,7 @@ static struct arm_boot_info palmte_binfo = {
     .board_id = 0x331,
 };
 
-static void palmte_init(int ram_size, int vga_ram_size,
+static void palmte_init(ram_addr_t ram_size, int vga_ram_size,
                 const char *boot_device, DisplayState *ds,
                 const char *kernel_filename, const char *kernel_cmdline,
                 const char *initrd_filename, const char *cpu_model)
@@ -267,12 +274,17 @@ static void palmte_init(int ram_size, int vga_ram_size,
         arm_load_kernel(cpu->env, &palmte_binfo);
     }
 
-    dpy_resize(ds, 320, 320);
+    /* FIXME: We shouldn't really be doing this here.  The LCD controller
+       will set the size once configured, so this just sets an initial
+       size until the guest activates the display.  */
+    ds->surface = qemu_resize_displaysurface(ds->surface, 320, 320, 32, 4 * 320);
+    dpy_resize(ds);
 }
 
 QEMUMachine palmte_machine = {
-    "cheetah",
-    "Palm Tungsten|E aka. Cheetah PDA (OMAP310)",
-    palmte_init,
-    (0x02000000 + 0x00800000 + OMAP15XX_SRAM_SIZE) | RAMSIZE_FIXED,
+    .name = "cheetah",
+    .desc = "Palm Tungsten|E aka. Cheetah PDA (OMAP310)",
+    .init = palmte_init,
+    .ram_require = (0x02000000 + 0x00800000 + OMAP15XX_SRAM_SIZE) |
+            RAMSIZE_FIXED,
 };