[alsa-devel] [PATCH 2/2 v2] hda - delayed ELD repoll
Takashi Iwai
tiwai at suse.de
Tue Nov 15 18:10:37 CET 2011
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
More information about the Alsa-devel
mailing list