From patchwork Mon Apr 22 16:15:31 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alex Deucher X-Patchwork-Id: 2473271 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id BE28E3FCA5 for ; Mon, 22 Apr 2013 16:38:02 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7D572E6679 for ; Mon, 22 Apr 2013 09:38:02 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-vb0-f45.google.com (mail-vb0-f45.google.com [209.85.212.45]) by gabe.freedesktop.org (Postfix) with ESMTP id 11EACE60DF for ; Mon, 22 Apr 2013 09:15:32 -0700 (PDT) Received: by mail-vb0-f45.google.com with SMTP id w15so6010193vbf.4 for ; Mon, 22 Apr 2013 09:15:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=A/70nWLdPkBUzoVAQtDaK0wk/laUXG9ohCEKuGdlkSc=; b=rn2E4btRlQLyaD0ecuw+cdilqxQK4p+0cBvibkOWzeiHVQRtrkaRFuUup3/RRBxy9B CGCVdIR5VzgPnwUUAQKgfa7FtiiiZ+Q/d9FAGLAKOpN1r+jZbuAqpkiSMqDz4LqbQoSQ Zb1xaf8NjocGH/sQQlWO14yhqCVFKnT3vDdzRRfe1jaEZ+7iwU93F4+iHZ16aUF2BKXV NbsuD6xuAqcujMOywCzWIBApeTavHuVN/I5HHsGPvZXDcIDBr36fL0FplSg3jhDhMbSn VLPj3TQVQBan/mBk9ABQnqCxfGbMGux/rfpIlK7jjlAoQl1ANSy1+0K0HXr5K9jljjQ/ cNqg== MIME-Version: 1.0 X-Received: by 10.220.188.70 with SMTP id cz6mr19537395vcb.20.1366647331260; Mon, 22 Apr 2013 09:15:31 -0700 (PDT) Received: by 10.59.4.180 with HTTP; Mon, 22 Apr 2013 09:15:31 -0700 (PDT) In-Reply-To: <1366644588.4530.182.camel@thor.local> References: <20130418184709.GA11596@elgon.mountain> <1366639393-10190-1-git-send-email-alexdeucher@gmail.com> <20130422140857.GC8936@mwanda> <1366644588.4530.182.camel@thor.local> Date: Mon, 22 Apr 2013 12:15:31 -0400 Message-ID: Subject: Re: [PATCH] drm/radeon: fix endian bugs in radeon_atom_get_clock_dividers() From: Alex Deucher To: =?ISO-8859-1?Q?Michel_D=E4nzer?= Cc: dri-devel@lists.freedesktop.org, Dan Carpenter X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org On Mon, Apr 22, 2013 at 11:29 AM, Michel Dänzer wrote: > On Mon, 2013-04-22 at 10:18 -0400, Alex Deucher wrote: >> On Mon, Apr 22, 2013 at 10:08 AM, Dan Carpenter >> wrote: >> > On Mon, Apr 22, 2013 at 10:03:13AM -0400, alexdeucher@gmail.com wrote: >> >> From: Alex Deucher >> >> >> >> Reported-by: Dan Carpenter >> >> Signed-off-by: Alex Deucher >> >> --- >> >> drivers/gpu/drm/radeon/atombios.h | 2 ++ >> >> drivers/gpu/drm/radeon/radeon_atombios.c | 6 ++---- >> >> 2 files changed, 4 insertions(+), 4 deletions(-) >> >> >> >> diff --git a/drivers/gpu/drm/radeon/atombios.h b/drivers/gpu/drm/radeon/atombios.h >> >> index 4b04ba3..de678dd 100644 >> >> --- a/drivers/gpu/drm/radeon/atombios.h >> >> +++ b/drivers/gpu/drm/radeon/atombios.h > [...] >> >> @@ -491,6 +492,7 @@ typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V5 >> >> { >> >> ATOM_COMPUTE_CLOCK_FREQ ulClock; //Input Parameter >> >> ATOM_S_MPLL_FB_DIVIDER ulFbDiv; //Output Parameter >> >> + ULONG ulClockFbDiv; >> >> }; >> >> UCHAR ucRefDiv; //Output Parameter >> >> UCHAR ucPostDiv; //Output Parameter > > This may just be a nitpick, but the location and name of the new union > member is slightly confusing: It suggests that it's some kind of > combination of the ulClock and ulFbDiv members, when it's just an > alternative representation of ulClock. I'd suggest moving up the new > member, clarifying its name and/or adding a comment explaining what it > is for. > Looks good to me other than that. Sounds good. v3 attached. Alex Reviewed-by: Michel Dänzer From d21f9d7ef1645fcb1573c80a8b0160cd3208a22a Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Mon, 22 Apr 2013 09:59:01 -0400 Subject: [PATCH] drm/radeon: fix endian bugs in radeon_atom_get_clock_dividers() (v3) v2: fix copy paste typo. v3: clarify new union member Reported-by: Dan Carpenter Signed-off-by: Alex Deucher --- drivers/gpu/drm/radeon/atombios.h | 2 ++ drivers/gpu/drm/radeon/radeon_atombios.c | 6 ++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/radeon/atombios.h b/drivers/gpu/drm/radeon/atombios.h index 4b04ba3..0ee5737 100644 --- a/drivers/gpu/drm/radeon/atombios.h +++ b/drivers/gpu/drm/radeon/atombios.h @@ -458,6 +458,7 @@ typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V3 union { ATOM_COMPUTE_CLOCK_FREQ ulClock; //Input Parameter + ULONG ulClockParams; //ULONG access for BE ATOM_S_MPLL_FB_DIVIDER ulFbDiv; //Output Parameter }; UCHAR ucRefDiv; //Output Parameter @@ -490,6 +491,7 @@ typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V5 union { ATOM_COMPUTE_CLOCK_FREQ ulClock; //Input Parameter + ULONG ulClockParams; //ULONG access for BE ATOM_S_MPLL_FB_DIVIDER ulFbDiv; //Output Parameter }; UCHAR ucRefDiv; //Output Parameter diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c index 8c1779c..0dd87c0 100644 --- a/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/drivers/gpu/drm/radeon/radeon_atombios.c @@ -2710,8 +2710,7 @@ int radeon_atom_get_clock_dividers(struct radeon_device *rdev, dividers->enable_post_div = (dividers->fb_div & 1) ? true : false; } else { if (clock_type == COMPUTE_ENGINE_PLL_PARAM) { - args.v3.ulClock.ulComputeClockFlag = clock_type; - args.v3.ulClock.ulClockFreq = cpu_to_le32(clock); /* 10 khz */ + args.v3.ulClockParams = cpu_to_le32((clock_type << 24) | clock); atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); @@ -2726,8 +2725,7 @@ int radeon_atom_get_clock_dividers(struct radeon_device *rdev, dividers->vco_mode = (args.v3.ucCntlFlag & ATOM_PLL_CNTL_FLAG_MPLL_VCO_MODE) ? 1 : 0; } else { - args.v5.ulClock.ulComputeClockFlag = clock_type; - args.v5.ulClock.ulClockFreq = cpu_to_le32(clock); /* 10 khz */ + args.v5.ulClockParams = cpu_to_le32((clock_type << 24) | clock); if (strobe_mode) args.v5.ucInputFlag = ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN; -- 1.7.7.5