From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?Christian_K=F6nig?= Subject: Re: [PATCH] drm/radeon: fix audio pin counts for DCE6+ Date: Tue, 08 Apr 2014 14:54:56 +0200 Message-ID: <5343F1A0.5060601@vodafone.de> References: <1396901841-7940-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id 4287C6E948 for ; Tue, 8 Apr 2014 05:55:10 -0700 (PDT) In-Reply-To: <1396901841-7940-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alex Deucher , dri-devel@lists.freedesktop.org Cc: Alex Deucher , stable@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org Applied to my 3.15 branch as well. Cheers, Christian. Am 07.04.2014 22:17, schrieb Alex Deucher: > There is actually quite a bit of variance based on > the asic. > > Signed-off-by: Alex Deucher > Cc: stable@vger.kernel.org > --- > drivers/gpu/drm/radeon/dce6_afmt.c | 14 ++++++++++---- > drivers/gpu/drm/radeon/radeon.h | 5 ++++- > 2 files changed, 14 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/dce6_afmt.c b/drivers/gpu/drm/radeon/dce6_afmt.c > index 8595449..38766aa 100644 > --- a/drivers/gpu/drm/radeon/dce6_afmt.c > +++ b/drivers/gpu/drm/radeon/dce6_afmt.c > @@ -309,11 +309,17 @@ int dce6_audio_init(struct radeon_device *rdev) > > rdev->audio.enabled = true; > > - if (ASIC_IS_DCE8(rdev)) > - rdev->audio.num_pins = 6; > - else if (ASIC_IS_DCE61(rdev)) > + if (ASIC_IS_DCE81(rdev)) /* KV: 4 streams, 7 endpoints */ > + rdev->audio.num_pins = 7; > + else if (ASIC_IS_DCE83(rdev)) /* KB: 2 streams, 3 endpoints */ > rdev->audio.num_pins = 4; > - else > + else if (ASIC_IS_DCE8(rdev)) /* BN/HW: 6 streams, 7 endpoints */ > + rdev->audio.num_pins = 7; > + else if (ASIC_IS_DCE61(rdev)) /* TN: 4 streams, 6 endpoints */ > + rdev->audio.num_pins = 6; > + else if (ASIC_IS_DCE64(rdev)) /* OL: 2 streams, 2 endpoints */ > + rdev->audio.num_pins = 2; > + else /* SI: 6 streams, 6 endpoints */ > rdev->audio.num_pins = 6; > > for (i = 0; i < rdev->audio.num_pins; i++) { > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h > index 7a07ec8..f0fc2c8 100644 > --- a/drivers/gpu/drm/radeon/radeon.h > +++ b/drivers/gpu/drm/radeon/radeon.h > @@ -736,7 +736,7 @@ union radeon_irq_stat_regs { > struct cik_irq_stat_regs cik; > }; > > -#define RADEON_MAX_HPD_PINS 6 > +#define RADEON_MAX_HPD_PINS 7 > #define RADEON_MAX_CRTCS 6 > #define RADEON_MAX_AFMT_BLOCKS 7 > > @@ -2628,6 +2628,9 @@ void r100_pll_errata_after_index(struct radeon_device *rdev); > #define ASIC_IS_DCE64(rdev) ((rdev->family == CHIP_OLAND)) > #define ASIC_IS_NODCE(rdev) ((rdev->family == CHIP_HAINAN)) > #define ASIC_IS_DCE8(rdev) ((rdev->family >= CHIP_BONAIRE)) > +#define ASIC_IS_DCE81(rdev) ((rdev->family == CHIP_KAVERI)) > +#define ASIC_IS_DCE82(rdev) ((rdev->family == CHIP_BONAIRE)) > +#define ASIC_IS_DCE83(rdev) ((rdev->family == CHIP_KABINI)) > > #define ASIC_IS_LOMBOK(rdev) ((rdev->ddev->pdev->device == 0x6849) || \ > (rdev->ddev->pdev->device == 0x6850) || \