aboutsummaryrefslogtreecommitdiff
path: root/hw/display
diff options
context:
space:
mode:
authorSebastian Bauer <mail@sebastianbauer.info>2018-07-04 11:40:58 +0200
committerDavid Gibson <david@gibson.dropbear.id.au>2018-07-07 12:12:27 +1000
commit54b2a4339ccae45d4264c2437978abd04ff82bca (patch)
tree5ff576371860cb22f4eba0a056b48e4463be462b /hw/display
parentd27335592a187de0ba77894b522025827907038c (diff)
sm501: Use values from the pitch register for 2D operations
Before, crt_h_total was used for src_width and dst_width. This is a property of the current display setting and not relevant for the 2D operation that also can be done off-screen. The pitch register's purpose is to describe line pitch relevant of the 2D operation. Signed-off-by: Sebastian Bauer <mail@sebastianbauer.info> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/display')
-rw-r--r--hw/display/sm501.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index b095134d6f..d4878f01c0 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -709,8 +709,8 @@ static void sm501_2d_operation(SM501State *s)
/* get frame buffer info */
uint8_t *src = s->local_mem + (s->twoD_source_base & 0x03FFFFFF);
uint8_t *dst = s->local_mem + (s->twoD_destination_base & 0x03FFFFFF);
- int src_width = (s->dc_crt_h_total & 0x00000FFF) + 1;
- int dst_width = (s->dc_crt_h_total & 0x00000FFF) + 1;
+ int src_width = s->twoD_pitch & 0x1FFF;
+ int dst_width = (s->twoD_pitch >> 16) & 0x1FFF;
if (addressing != 0x0) {
printf("%s: only XY addressing is supported.\n", __func__);