public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: patrik.r.jakobsson@gmail.com
To: nick <xerofoify@gmail.com>
Cc: dri-devel <dri-devel@lists.freedesktop.org>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] gma500:Remove functions that are now deprecated and move to the newer functions in drm_dp_helper.c
Date: Sun, 10 May 2015 21:45:36 +0200	[thread overview]
Message-ID: <20150510194536.GA25199@patrik-arch.example2.org> (raw)
In-Reply-To: <554FA628.6030102@gmail.com>

On Sun, May 10, 2015 at 02:40:40PM -0400, nick wrote:
> 
> 
> On 2015-05-10 02:35 PM, patrik.r.jakobsson@gmail.com wrote:
> > On Sun, May 10, 2015 at 01:48:14PM -0400, nick wrote:
> >>
> >>
> >> On 2015-05-10 01:04 PM, patrik.r.jakobsson@gmail.com wrote:
> >>> On Tue, May 05, 2015 at 11:17:07AM -0400, nick wrote:
> >>>>
> >>>>
> >>>> On 2015-05-05 09:06 AM, Patrik Jakobsson wrote:
> >>>>> On Tue, May 5, 2015 at 12:29 AM, Nicholas Krause <xerofoify@gmail.com> wrote:
> >>>>>> This removes the deprecated functions,i2c_dp_aux_add_bus and
> >>>>>> i2c_dp_aux_prepare_bus and the only call in the function,
> >>>>>> cdv_intel_dp_i2c_init to i2c_dp_aux_add_bus respectfully.
> >>>>>> The call and use of these functions is now replaced alongside
> >>>>>> the removal of setting other values in the function,cdv_intel_dp_i2c_init
> >>>>>> to use the helper function, drm_dp_aux_register that can handle all this
> >>>>>> work internally.
> >>>>>
> >>>>> You need to fill in the drm_dp_aux structure and implement a proper transfer
> >>>>> function. This patch would only break things. But the cdv dp output is already
> >>>>> broken on my system so it needs fixing first.
> >>>>>
> >>>>> -Patrik
> >>>>>
> >>>> Patrik,
> >>>> Due to me not being an expert in this area of the kernel I based my work off the similar function,
> >>>> intel_dp_aux_init for i915. I was unsure of which helper functions for i915 need to be written 
> >>>> differently for gma500 based solutions as I don't known the differences between these two in the
> >>>> graphics specs area.
> >>>> Thanks,
> >>>> Nick
> >>>
> >>> Hi Nick
> >>> You are _required_ to know what your patches are doing before sending them. If
> >>> you don't test your code and don't know what it's doing then we will not accept
> >>> it. You're expected to read the available documentation and relevant literature
> >>> before sending patches and asking questions. Otherwise someone else is doing the
> >>> work for you, which I assume is not the purpose of you patch submission.
> >>>
> >>> Thanks
> >>> Patrik
> 
> >> Patrik,
> >> Sorry about that my question is actually this ,I am unsure of what parts of the function,intel_dp_aux_init
> >> need to be ported for the gma500 gpu driver. Furthermore I will list what parts for certain I known need to
> >> be ported over above the lines of code in the function definition I have pasted below. Please let me known
> >> if there are any areas I am missing. This is more just of a double check to make sure I don't miss something
> >> critical:)(I like to verify something before I code it). 
> >> Sorry for the misunderstanding,
> > 
> > You can figure this out by reading the drm dp helpers docs and looking at
> > cdv_intel_dp.c. For instance, in gma500 we initialize DP_B and DP_C.
> > 
> > My point is that _you_ need to read the code and understand it. I cannot help
> > you with that.
> > 
> > But as I said in my first reply. DP on CDV is broken (at least on my machine) so
> > that should be fixed first.
> > 
> > Cheers
> > Patrik
> > 
> Patrik,
> Sorry about that :). Your right it's a bad habit :(, I will start working on it.
> Further more by "broken" you mean what. This is very vague and if you would like
> some help with it, I am willing to if you can give me a detailed response of what
> is wrong.
> Nick

Vague? Both DP and LVDS displays are black after boot when DP is connected. What
additional information do you need?

> >> Nick
> >> static void
> >> 1002 intel_dp_aux_init(struct intel_dp *intel_dp, struct intel_connector *connector)
> >> 1003 {
> >> 	/*Unsure about how to port this over the functions in these lines  a.k.a any differences between i915 and gma500 related to these functions?
> >> 	I read through these function definitions but would like to double check*/
> >> 1004         struct drm_device *dev = intel_dp_to_dev(intel_dp);
> >> 1005         struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> >> 1006         enum port port = intel_dig_port->port;
> >> /*Port these lines*/
> >> 1007         const char *name = NULL;
> >> 1008         int ret;
> >> /*Port this switch statement */
> >> 1009 
> >> 1010         switch (port) {
> >> 1011         case PORT_A:
> >> 1012                 intel_dp->aux_ch_ctl_reg = DPA_AUX_CH_CTL;
> >> 1013                 name = "DPDDC-A";
> >> 1014                 break;
> >> 1015         case PORT_B:
> >> 1016                 intel_dp->aux_ch_ctl_reg = PCH_DPB_AUX_CH_CTL;
> >> 1017                 name = "DPDDC-B";
> >> 1018                 break;
> >> 1019         case PORT_C:
> >> 1020                 intel_dp->aux_ch_ctl_reg = PCH_DPC_AUX_CH_CTL;
> >> 1021                 name = "DPDDC-C";
> >> 1022                 break;
> >> 1023         case PORT_D:
> >> 1024                 intel_dp->aux_ch_ctl_reg = PCH_DPD_AUX_CH_CTL;
> >> 1025                 name = "DPDDC-D";
> >> 1026                 break;
> >> 1027         default:
> >> 1028                 BUG();
> >> 1029         }
> >> 1030 
> >> 1031         /*
> >> 1032          * The AUX_CTL register is usually DP_CTL + 0x10.
> >> 1033          *
> >> 1034          * On Haswell and Broadwell though:
> >> 1035          *   - Both port A DDI_BUF_CTL and DDI_AUX_CTL are on the CPU
> >> 1036          *   - Port B/C/D AUX channels are on the PCH, DDI_BUF_CTL on the CPU
> >> 1037          *
> >> 1038          * Skylake moves AUX_CTL back next to DDI_BUF_CTL, on the CPU.
> >> 1039          */
> >> 1040         if (!IS_HASWELL(dev) && !IS_BROADWELL(dev))
> >> 1041                 intel_dp->aux_ch_ctl_reg = intel_dp->output_reg + 0x10;
> >> 1042 
> >> /*Port these lines*/
> >> 1043         intel_dp->aux.name = name;
> >> 1044         intel_dp->aux.dev = dev->dev;
> >> 1045         intel_dp->aux.transfer = intel_dp_aux_transfer;
> >> 1046 
> >> /*Port this devugging message */
> >> 1047 DRM_DEBUG_KMS("registering %s bus for %s\n", name,
> >> 1048                       connector->base.kdev->kobj.name);
> >> 1049 
> >> /*Port these lines*/
> >> 1050         ret = drm_dp_aux_register(&intel_dp->aux);
> >> 1051         if (ret < 0) {
> >> 1052                 DRM_ERROR("drm_dp_aux_register() for %s failed (%d)\n",
> >> 1053                           name, ret);
> >> 1054                 return;
> >> 1055         }
> >> 1056 
> >> /*Port the of the function */
> >> 1057         ret = sysfs_create_link(&connector->base.kdev->kobj,
> >> 1058                                 &intel_dp->aux.ddc.dev.kobj,
> >> 1059                                 intel_dp->aux.ddc.dev.kobj.name);
> >> 1060         if (ret < 0) {
> >> 1061                 DRM_ERROR("sysfs_create_link() for %s failed (%d)\n", name, ret);
> >> 1062                 drm_dp_aux_unregister(&intel_dp->aux);
> >> 1063         }
> >> 1064 }
> >> 1065 
> >>>
> >>>>>> Signed-off-by: Nicholas Krause <xerofoify@gmail.com>
> >>>>>> ---
> >>>>>>  drivers/gpu/drm/gma500/cdv_intel_dp.c | 42 ++---------------------------------
> >>>>>>  1 file changed, 2 insertions(+), 40 deletions(-)
> >>>>>>
> >>>>>> diff --git a/drivers/gpu/drm/gma500/cdv_intel_dp.c b/drivers/gpu/drm/gma500/cdv_intel_dp.c
> >>>>>> index 0fafb8e..c8c20fc 100644
> >>>>>> --- a/drivers/gpu/drm/gma500/cdv_intel_dp.c
> >>>>>> +++ b/drivers/gpu/drm/gma500/cdv_intel_dp.c
> >>>>>> @@ -200,38 +200,6 @@ static const struct i2c_algorithm i2c_dp_aux_algo = {
> >>>>>>         .functionality  = i2c_algo_dp_aux_functionality,
> >>>>>>  };
> >>>>>>
> >>>>>> -static void
> >>>>>> -i2c_dp_aux_reset_bus(struct i2c_adapter *adapter)
> >>>>>> -{
> >>>>>> -       (void) i2c_algo_dp_aux_address(adapter, 0, false);
> >>>>>> -       (void) i2c_algo_dp_aux_stop(adapter, false);
> >>>>>> -}
> >>>>>> -
> >>>>>> -static int
> >>>>>> -i2c_dp_aux_prepare_bus(struct i2c_adapter *adapter)
> >>>>>> -{
> >>>>>> -       adapter->algo = &i2c_dp_aux_algo;
> >>>>>> -       adapter->retries = 3;
> >>>>>> -       i2c_dp_aux_reset_bus(adapter);
> >>>>>> -       return 0;
> >>>>>> -}
> >>>>>> -
> >>>>>> -/*
> >>>>>> - * FIXME: This is the old dp aux helper, gma500 is the last driver that needs to
> >>>>>> - * be ported over to the new helper code in drm_dp_helper.c like i915 or radeon.
> >>>>>> - */
> >>>>>> -static int __deprecated
> >>>>>> -i2c_dp_aux_add_bus(struct i2c_adapter *adapter)
> >>>>>> -{
> >>>>>> -       int error;
> >>>>>> -
> >>>>>> -       error = i2c_dp_aux_prepare_bus(adapter);
> >>>>>> -       if (error)
> >>>>>> -               return error;
> >>>>>> -       error = i2c_add_adapter(adapter);
> >>>>>> -       return error;
> >>>>>> -}
> >>>>>> -
> >>>>>>  #define _wait_for(COND, MS, W) ({ \
> >>>>>>          unsigned long timeout__ = jiffies + msecs_to_jiffies(MS);       \
> >>>>>>          int ret__ = 0;                                                  \
> >>>>>> @@ -275,6 +243,7 @@ struct cdv_intel_dp {
> >>>>>>         int backlight_on_delay;
> >>>>>>         int backlight_off_delay;
> >>>>>>         struct drm_display_mode *panel_fixed_mode;  /* for eDP */
> >>>>>> +       struct drm_dp_aux aux;
> >>>>>>         bool panel_on;
> >>>>>>  };
> >>>>>>
> >>>>>> @@ -855,18 +824,11 @@ cdv_intel_dp_i2c_init(struct gma_connector *connector,
> >>>>>>         intel_dp->algo.running = false;
> >>>>>>         intel_dp->algo.address = 0;
> >>>>>>         intel_dp->algo.aux_ch = cdv_intel_dp_i2c_aux_ch;
> >>>>>> -
> >>>>>>         memset(&intel_dp->adapter, '\0', sizeof (intel_dp->adapter));
> >>>>>> -       intel_dp->adapter.owner = THIS_MODULE;
> >>>>>> -       intel_dp->adapter.class = I2C_CLASS_DDC;
> >>>>>> -       strncpy (intel_dp->adapter.name, name, sizeof(intel_dp->adapter.name) - 1);
> >>>>>> -       intel_dp->adapter.name[sizeof(intel_dp->adapter.name) - 1] = '\0';
> >>>>>> -       intel_dp->adapter.algo_data = &intel_dp->algo;
> >>>>>> -       intel_dp->adapter.dev.parent = connector->base.kdev;
> >>>>>>
> >>>>>>         if (is_edp(encoder))
> >>>>>>                 cdv_intel_edp_panel_vdd_on(encoder);
> >>>>>> -       ret = i2c_dp_aux_add_bus(&intel_dp->adapter);
> >>>>>> +       ret = drm_dp_aux_register(&intel_dp->aux);
> >>>>>>         if (is_edp(encoder))
> >>>>>>                 cdv_intel_edp_panel_vdd_off(encoder);
> >>>>>>
> >>>>>> --
> >>>>>> 2.1.4
> >>>>>>

  parent reply	other threads:[~2015-05-10 19:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1430778546-23468-1-git-send-email-xerofoify@gmail.com>
2015-05-05 12:02 ` [PATCH] gma500:Remove functions that are now deprecated and move to the newer functions in drm_dp_helper.c Alan Cox
2015-05-05 13:06 ` Patrik Jakobsson
     [not found]   ` <5548DEF3.5040204@gmail.com>
2015-05-10 17:04     ` patrik.r.jakobsson
     [not found]       ` <554F99DE.3020608@gmail.com>
2015-05-10 18:35         ` patrik.r.jakobsson
     [not found]           ` <554FA628.6030102@gmail.com>
2015-05-10 19:45             ` patrik.r.jakobsson [this message]
     [not found]               ` <DB132CE8-324F-4256-A6B9-0A331819DA3C@gmail.com>
2015-05-11  8:24                 ` Patrik Jakobsson
     [not found]                   ` <72A3DCA4-2BA0-41ED-8313-985B49FD15E3@gmail.com>
2015-05-12 14:18                     ` Patrik Jakobsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150510194536.GA25199@patrik-arch.example2.org \
    --to=patrik.r.jakobsson@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xerofoify@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox