[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <21d7e9970910062056r12754a6ew2c89b6f5a80e290a@mail.gmail.com>
Date: Wed, 7 Oct 2009 13:56:54 +1000
From: Dave Airlie <airlied@...il.com>
To: Jerome Glisse <jglisse@...hat.com>
Cc: dri-devel@...ts.sf.net, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] drm/radeon/kms: Convert RS600 to new init path
On Thu, Oct 1, 2009 at 6:09 AM, Jerome Glisse <jglisse@...hat.com> wrote:
> New init path allow to simply asic initialization and make easier
> to trace what happen on each different asic. We are removing most
> callback. Do a massive RS600 register cleanup to clarify RS600
> register, we are still bit fuzy on some register and waiting for
> more informations. I don't have hw to test, so this patch is a
> best effort to not break anythings and to try to improve things.
This patch breaks irq handling on all rs600->r5xx chips.
> }
>
> static inline uint32_t rs600_irq_ack(struct radeon_device *rdev, u32 *r500_disp_int)
> {
> - uint32_t irqs = RREG32(RADEON_GEN_INT_STATUS);
^ this was perfectly fine correct code.
> - uint32_t irq_mask = RADEON_SW_INT_TEST;
> -
> - if (irqs & AVIVO_DISPLAY_INT_STATUS) {
> - *r500_disp_int = RREG32(AVIVO_DISP_INTERRUPT_STATUS);
> - if (*r500_disp_int & AVIVO_D1_VBLANK_INTERRUPT) {
> - WREG32(AVIVO_D1MODE_VBLANK_STATUS, AVIVO_VBLANK_ACK);
> + uint32_t irqs = RREG32(R_000040_GEN_INT_CNTL);
^ this is not doing the same thing at all.
If these auto generated registers are meant to have made life easier I can't see
how I'm wasting more time tracking down bugs that weren't there before this,
than fixing real problems. I'm about 5 mins from reverting back to
just using radeon_reg.h
Dave.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists