At Wed, 16 Nov 2011 00:57:08 +0800,
Wu Fengguang wrote:
> +static void hda_eld_work(struct work_struct *work)
> +{
> +     struct hdmi_eld *eld = container_of(
> +                             container_of(work, struct delayed_work, work),
> +                             struct hdmi_eld, work);

Ugh, hardly to read.  Slightly better to use to_delayed_work()?

        struct hdmi_eld *eld = container_of(to_delayed_work(work),
                                            struct hdmi_eld, work);

> +     struct hdmi_spec_per_pin *per_pin =
> +                     container_of(eld, struct hdmi_spec_per_pin, sink_eld);
> +     struct hda_codec *codec = eld->codec;
> +
> +     hdmi_present_sense(codec, per_pin->pin_nid, eld, false);
> +}
> +
>  static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid)
>  {
>       struct hdmi_spec *spec = codec->spec;
> @@ -1227,7 +1245,7 @@ static int generic_hdmi_build_jack(struc
>       if (err < 0)
>               return err;
>  
> -     hdmi_present_sense(codec, per_pin->pin_nid, &per_pin->sink_eld);
> +     hdmi_present_sense(codec, per_pin->pin_nid, &per_pin->sink_eld, false);
...

Looking through the code, I wonder how about keeping work and codec
pointer in struct hdmi_spec_per_pin instead of struct hdmi_eld.  Then
we don't need to expose it in hda_local.h, and changes would be
slightly more compact.

hdmi_present_sense() can be modified to receive hdmi_sepc_per_pin*
directly instead of individual nid and eld pointer.


thanks,

Takashi
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to