83af57dd | 03-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Don't check connection in lowlevel accessors
The lowlevel register read/write don't have to be careful about the connection state. It should be checked in the caller side instead. By dro
ALSA: x86: Don't check connection in lowlevel accessors
The lowlevel register read/write don't have to be careful about the connection state. It should be checked in the caller side instead. By dropping the check, we can simplify the code, and readability.
This patch also refacors the functions slightly: namely, - drop the useless always-zero return values - fold the inline functions to the main accessor functions themselves - move the DP audio hack for AUD_CONFIG to the caller side - simplify snd_intelhad_eanble_audio() and drop the unused had_read_modify()
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
412bbe7d | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Explicit specify 32bit DMA
LPE audio is capable only up to 32bit address, as it seems. Then we should limit the DMA addresses accordingly via dma-mapping API.
Signed-off-by: Takashi Iwai
ALSA: x86: Explicit specify 32bit DMA
LPE audio is capable only up to 32bit address, as it seems. Then we should limit the DMA addresses accordingly via dma-mapping API.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
91b0cb0c | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Rename drv_status to connected
After the rewrite of the runtime PM code, we have only two driver status: CONNECTED and DISCONNECTED. So it's clearer to use a boolean flag, and name it ea
ALSA: x86: Rename drv_status to connected
After the rewrite of the runtime PM code, we have only two driver status: CONNECTED and DISCONNECTED. So it's clearer to use a boolean flag, and name it easier one, "connected".
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
73997b05 | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Yet more tidy-up and clean-ups
- Add a few more comments to functions.
- Move the initialization of some PCM state variables to open and prepare callbacks, where these are clearer plac
ALSA: x86: Yet more tidy-up and clean-ups
- Add a few more comments to functions.
- Move the initialization of some PCM state variables to open and prepare callbacks, where these are clearer places.
- Remove superfluous NULL checks.
- Get rid of the bogus drv_status change to CONNECTED at close; this doesn't make any sense.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
44684f61 | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Simplify comments
It's a stand-alone small driver code, and we don't have to describe too much formalized comments in kernel-doc style for local functions at all.
Signed-off-by: Takashi
ALSA: x86: Simplify comments
It's a stand-alone small driver code, and we don't have to describe too much formalized comments in kernel-doc style for local functions at all.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
36ed3466 | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Set CA bits for DisplayPort too
This is a guess work. Usually the DP audio info frame is just 8-bit shifted from HDMI AI, so let's try to put CA in DIP frame 2 [24-31].
Signed-off-by: T
ALSA: x86: Set CA bits for DisplayPort too
This is a guess work. Usually the DP audio info frame is just 8-bit shifted from HDMI AI, so let's try to put CA in DIP frame 2 [24-31].
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
4aedb946 | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Create ELD control element
Like other drivers, expose the ELD bytes via a control element so that user-space can parse it.
For the simplicity, the code to register the ctl elements is re
ALSA: x86: Create ELD control element
Like other drivers, expose the ELD bytes via a control element so that user-space can parse it.
For the simplicity, the code to register the ctl elements is refactored using an array. Also, since ELD ctl read copies the bytes also during disconnection, clear the ELD bytes at hot-unplug, in order to avoid the leak of the previous bogus ELD.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
03c34377 | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Clean up unused defines and inclusions
Many defines and constants are left unused. Clean them up.
Signed-off-by: Takashi Iwai <tiwai@suse.de> |
7ceba75f | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Reduce redundant register field names
Currently each register definition contains the own prefix in the union struct itself; for example, union aud_ch_status_0 has status_0_regx and statu
ALSA: x86: Reduce redundant register field names
Currently each register definition contains the own prefix in the union struct itself; for example, union aud_ch_status_0 has status_0_regx and status_0_regval fields. These are simply superfluous, since usually the type of the variable is seen in its declaration or in its name.
In this patch, we cut off these prefixes. Now all register definitions have regx and regval fields consistently, instead.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
df0435db | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Use the standard ELD bytes definitions
We have some constants defined in drm/drm_edid.h, and clean up our own definitions.
Signed-off-by: Takashi Iwai <tiwai@suse.de> |
f69bd104 | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Move stream status into pcm_stream_info
The only remaining field in struct had_stream_data is stream_type that holds the current stream status. Such information fits better in struct pcm
ALSA: x86: Move stream status into pcm_stream_info
The only remaining field in struct had_stream_data is stream_type that holds the current stream status. Such information fits better in struct pcm_stream_info, so move it as a boolean "running" field to be clearer.
This allows us to get rid or had_stream_data definition and references.
Also, the superfluous status check get removed in a couple of places where we can call PCM helpers in anyway.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
182cdf23 | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Implement runtime PM
Although the driver has some PM callbacks, it doesn't do it right: - the suspend callback doesn't handle to suspend the running PCM, - the runtime PM ops are missing,
ALSA: x86: Implement runtime PM
Although the driver has some PM callbacks, it doesn't do it right: - the suspend callback doesn't handle to suspend the running PCM, - the runtime PM ops are missing, - pm_runtime_get_sync() isn't used at the right place.
This patch covers the above and provides the basic runtime PM functionality.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
313d9f28 | 02-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Properly manage PCM substream lifetype
The PCM substream is referred not only in the PCM callbacks but also in the irq handler and in the hotplug/unplug codes. The latter code paths don'
ALSA: x86: Properly manage PCM substream lifetype
The PCM substream is referred not only in the PCM callbacks but also in the irq handler and in the hotplug/unplug codes. The latter code paths don't take the PCM lock, thus the PCM may be released unexpectedly while calling PCM helper functions or accessing pcm->runtime fields.
This patch implements a simple refcount to assure the PCM substream accessibility while the other codes are accessing. It needed some code refactoring in the relevant functions for avoiding the doubly spinlocks.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
7d9e7986 | 01-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Drop unused fields from pcm_stream_info
The struct pcm_stream_info contains a few unused or useless fields. str_id is always zero, buffer_ptr is volatile, never read, and sfreq is nowhere
ALSA: x86: Drop unused fields from pcm_stream_info
The struct pcm_stream_info contains a few unused or useless fields. str_id is always zero, buffer_ptr is volatile, never read, and sfreq is nowhere referred. Kill them.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
fa5dfe6a | 01-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Drop redundant had_stream_pvt
The had_stream_pvt struct assigned to PCM runtime private data tracks merely the stream running status, and the very same information is carried by had_strea
ALSA: x86: Drop redundant had_stream_pvt
The had_stream_pvt struct assigned to PCM runtime private data tracks merely the stream running status, and the very same information is carried by had_stream->stream_type. Kill it.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
0e9c67d7 | 01-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Drop superfluous state field
The state field keeps the connection state and it's basically as same as drv_status field. Drop this redundancy.
Signed-off-by: Takashi Iwai <tiwai@suse.de> |
d0e9b1a2 | 01-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Drop flag_underrun field
The flag_underrun flag is used to indicate to escalate the XRUN reporting at the next position inquiry, but there is a much simpler method to achieve it: just cal
ALSA: x86: Drop flag_underrun field
The flag_underrun flag is used to indicate to escalate the XRUN reporting at the next position inquiry, but there is a much simpler method to achieve it: just call snd_pcm_stop_xrun().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
8f8d1d7f | 01-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Fix racy access to chmap
The access to chmap can be racy against the hotplug process, where it recreates the chmap on the fly. For protecting against it, a mutex is introduced in this pa
ALSA: x86: Fix racy access to chmap
The access to chmap can be racy against the hotplug process, where it recreates the chmap on the fly. For protecting against it, a mutex is introduced in this patch. It's also used for protecting the change / reference of eld and state fields, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
bcce775c | 01-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Remove superfluous irqsave flags
We don't need to use irqsave/irqrestore versions for each spin lock, but judge the context properly and use the simpler versions.
Also add some (still si
ALSA: x86: Remove superfluous irqsave flags
We don't need to use irqsave/irqrestore versions for each spin lock, but judge the context properly and use the simpler versions.
Also add some (still simplistic) comments to functions.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
4a5ddb2c | 01-Feb-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Constfy tables
Some tables can be defined as const.
Signed-off-by: Takashi Iwai <tiwai@suse.de> |
4151ee84 | 31-Jan-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Remove _v[12] suffices
Although we dropped the most of the obsoleted *_v1 definitions and codes, some codes still keep the _v1 or _v2 suffices. Now they are ripped off.
The only thing t
ALSA: x86: Remove _v[12] suffices
Although we dropped the most of the obsoleted *_v1 definitions and codes, some codes still keep the _v1 or _v2 suffices. Now they are ripped off.
The only thing to be done carefully here is the definition of control offsets. The original code defines enum hdmi_ctrl_reg_offset_v1 and a few new elements just for v2 on its top. After this cleanup, we remove the old AUD_HDMI_STATUS and AUD_HDMIW_INFOFR definitions and replace with the v2 values.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
2e52f5e5 | 31-Jan-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Tidy up codes
Clean up codes, fix indentations, correct comments, etc. No functional change.
Signed-off-by: Takashi Iwai <tiwai@suse.de> |
79f439ea | 31-Jan-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Drop had_get_hwstate()
The helper function isn't clearer than the plain condition check "if (drv_status == HDA_DRV_DISCONNECTED)". By expanding this, the compiler could even catch the po
ALSA: x86: Drop had_get_hwstate()
The helper function isn't clearer than the plain condition check "if (drv_status == HDA_DRV_DISCONNECTED)". By expanding this, the compiler could even catch the possible uninitialized cases, so we could fix them, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
caa2a61a | 31-Jan-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Remove superfluous check at resume
The had_get_hwstate() is identical with drv_status==DISCONECTED, which was already checked before the call. And, returning an error at resume is simply
ALSA: x86: Remove superfluous check at resume
The had_get_hwstate() is identical with drv_status==DISCONECTED, which was already checked before the call. And, returning an error at resume is simply bad. That is, we should just kill this check.
Also, spewing an error at resume for drv_status!=SUSPENDED is also annoying, as this is the normal case when the suspend was called without the monitor connection. Make it debug, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
99b2ab9d | 31-Jan-2017 |
Takashi Iwai <tiwai@suse.de> |
ALSA: x86: Fix sleep-in-atomic via i915 notification
i915 notification is executed in a spinlock, thus it must not sleep; i.e. we can't use kmalloc with GFP_KERNEL or such.
For making it working pr
ALSA: x86: Fix sleep-in-atomic via i915 notification
i915 notification is executed in a spinlock, thus it must not sleep; i.e. we can't use kmalloc with GFP_KERNEL or such.
For making it working properly, move the notification handler in a work, and handle it gracefully. We have already such a work, and it was used just at the start. This can be re-used in a more generic hotplug handling.
Also, the patch adds the proper call of cancel_work_sync() to the destructor.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|