hw/timer/cmsdk-apb-timer: Correct ptimer policy settings
The CMSDK timer interrupt triggers when the counter goes from 1 to 0, so we want to trigger immediately, rather than waiting for a clock cycle. Drop the incorrect NO_IMMEDIATE_TRIGGER setting. We also do not want to get an interrupt if the guest sets the counter directly to zero, so use the new TRIGGER_ONLY_ON_DECREMENT policy. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Guenter Roeck <linux@roeck-us.net> Message-id: 20180703171044.9503-3-peter.maydell@linaro.org
This commit is contained in:
		
							parent
							
								
									086ede32af
								
							
						
					
					
						commit
						6583080ed8
					
				@ -201,7 +201,7 @@ static void cmsdk_apb_timer_realize(DeviceState *dev, Error **errp)
 | 
				
			|||||||
    bh = qemu_bh_new(cmsdk_apb_timer_tick, s);
 | 
					    bh = qemu_bh_new(cmsdk_apb_timer_tick, s);
 | 
				
			||||||
    s->timer = ptimer_init(bh,
 | 
					    s->timer = ptimer_init(bh,
 | 
				
			||||||
                           PTIMER_POLICY_WRAP_AFTER_ONE_PERIOD |
 | 
					                           PTIMER_POLICY_WRAP_AFTER_ONE_PERIOD |
 | 
				
			||||||
                           PTIMER_POLICY_NO_IMMEDIATE_TRIGGER |
 | 
					                           PTIMER_POLICY_TRIGGER_ONLY_ON_DECREMENT |
 | 
				
			||||||
                           PTIMER_POLICY_NO_IMMEDIATE_RELOAD |
 | 
					                           PTIMER_POLICY_NO_IMMEDIATE_RELOAD |
 | 
				
			||||||
                           PTIMER_POLICY_NO_COUNTER_ROUND_DOWN);
 | 
					                           PTIMER_POLICY_NO_COUNTER_ROUND_DOWN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user