Commit e8d0b2c0 authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/edid: use a temp variable for sads to drop one level of dereferences



Use a temporary variable struct cea_sad *, instead of using struct
cea_sad ** directly with the double dereferences. It's arguably easier
on the eyes, and drops a set of parenthesis too.

Cc: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Reviewed-by: default avatarMitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/b6e2f295ae5491c2bb0f528508f0f5fca921dc77.1698747331.git.jani.nikula@intel.com
parent 439590ac
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -5591,7 +5591,7 @@ static void drm_edid_to_eld(struct drm_connector *connector,
}

static int _drm_edid_to_sad(const struct drm_edid *drm_edid,
			    struct cea_sad **sads)
			    struct cea_sad **psads)
{
	const struct cea_db *db;
	struct cea_db_iter iter;
@@ -5600,19 +5600,21 @@ static int _drm_edid_to_sad(const struct drm_edid *drm_edid,
	cea_db_iter_edid_begin(drm_edid, &iter);
	cea_db_iter_for_each(db, &iter) {
		if (cea_db_tag(db) == CTA_DB_AUDIO) {
			struct cea_sad *sads;
			int j;

			count = cea_db_payload_len(db) / 3; /* SAD is 3B */
			*sads = kcalloc(count, sizeof(**sads), GFP_KERNEL);
			if (!*sads)
			sads = kcalloc(count, sizeof(*sads), GFP_KERNEL);
			*psads = sads;
			if (!sads)
				return -ENOMEM;
			for (j = 0; j < count; j++) {
				const u8 *sad = &db->data[j * 3];

				(*sads)[j].format = (sad[0] & 0x78) >> 3;
				(*sads)[j].channels = sad[0] & 0x7;
				(*sads)[j].freq = sad[1] & 0x7F;
				(*sads)[j].byte2 = sad[2];
				sads[j].format = (sad[0] & 0x78) >> 3;
				sads[j].channels = sad[0] & 0x7;
				sads[j].freq = sad[1] & 0x7F;
				sads[j].byte2 = sad[2];
			}
			break;
		}