diff mbox series

[1/2] ASoC: Intel: bytcr_rt5640: Add quirk for the Prowise PT301 tablet

Message ID 20181208130114.6612-1-hdegoede@redhat.com (mailing list archive)
State Accepted
Commit 271248f4c2bf56dc6b3582e37c7ac19dd483d989
Headers show
Series [1/2] ASoC: Intel: bytcr_rt5640: Add quirk for the Prowise PT301 tablet | expand

Commit Message

Hans de Goede Dec. 8, 2018, 1:01 p.m. UTC
Add a quirk for the Prowise PT301 tablet, this BYTCR tablet has no CHAN
package in its ACPI tables and uses SSP0-AIF1 rather then SSP0-AIF2 which
is the default for BYTCR devices.

Also it uses IN1 for its MIC and JD2 for jack-detect, rather then the
default IN3 and JD1.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 sound/soc/intel/boards/bytcr_rt5640.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Comments

Pierre-Louis Bossart Dec. 10, 2018, 2:35 p.m. UTC | #1
On 12/8/18 7:01 AM, Hans de Goede wrote:
> Add a quirk for the Prowise PT301 tablet, this BYTCR tablet has no CHAN
> package in its ACPI tables and uses SSP0-AIF1 rather then SSP0-AIF2 which
> is the default for BYTCR devices.
>
> Also it uses IN1 for its MIC and JD2 for jack-detect, rather then the
> default IN3 and JD1.

Looks like someone was trying hard to avoid using defaults...Oh well.

Both patch 1 and 2

Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>


>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>   sound/soc/intel/boards/bytcr_rt5640.c | 14 ++++++++++++++
>   1 file changed, 14 insertions(+)
>
> diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
> index 8587bd3d1cc1..6df902e3a380 100644
> --- a/sound/soc/intel/boards/bytcr_rt5640.c
> +++ b/sound/soc/intel/boards/bytcr_rt5640.c
> @@ -674,6 +674,20 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
>   					BYT_RT5640_SSP0_AIF2 |
>   					BYT_RT5640_MCLK_EN),
>   	},
> +	{
> +		/* Prowise PT301 */
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "Prowise"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "PT301"),
> +		},
> +		.driver_data = (void *)(BYT_RT5640_IN1_MAP |
> +					BYT_RT5640_JD_SRC_JD2_IN4N |
> +					BYT_RT5640_OVCD_TH_2000UA |
> +					BYT_RT5640_OVCD_SF_0P75 |
> +					BYT_RT5640_DIFF_MIC |
> +					BYT_RT5640_SSP0_AIF1 |
> +					BYT_RT5640_MCLK_EN),
> +	},
>   	{
>   		.matches = {
>   			DMI_MATCH(DMI_BOARD_VENDOR, "TECLAST"),
Hans de Goede Dec. 10, 2018, 2:54 p.m. UTC | #2
Hi,

On 10-12-18 15:35, Pierre-Louis Bossart wrote:
> 
> On 12/8/18 7:01 AM, Hans de Goede wrote:
>> Add a quirk for the Prowise PT301 tablet, this BYTCR tablet has no CHAN
>> package in its ACPI tables and uses SSP0-AIF1 rather then SSP0-AIF2 which
>> is the default for BYTCR devices.
>>
>> Also it uses IN1 for its MIC and JD2 for jack-detect, rather then the
>> default IN3 and JD1.
> 
> Looks like someone was trying hard to avoid using defaults...Oh well.

FWIW:

Well in practice more BYTCR devices seem to use SSP0-AIF1 rather then
SSP0-AIF2, but I don't want to change the driver defaults at this point
and most BYTCR devices do have a CHAN package in their ACPI tables.

As for using IN1+JD2 rather then IN3+JD1 (which seem to be the most
if not only used combos) in my experience there is pretty much a 50/50
split in which devices uses which combo.

I've a table with the correct settings for most of the device which I have
here: https://github.com/jwrdegoede/sunxi-fedora-scripts/blob/master/x86-codec-info

> Both patch 1 and 2
> 
> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

Thanks.

Regards,

Hans


>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>   sound/soc/intel/boards/bytcr_rt5640.c | 14 ++++++++++++++
>>   1 file changed, 14 insertions(+)
>>
>> diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
>> index 8587bd3d1cc1..6df902e3a380 100644
>> --- a/sound/soc/intel/boards/bytcr_rt5640.c
>> +++ b/sound/soc/intel/boards/bytcr_rt5640.c
>> @@ -674,6 +674,20 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
>>                       BYT_RT5640_SSP0_AIF2 |
>>                       BYT_RT5640_MCLK_EN),
>>       },
>> +    {
>> +        /* Prowise PT301 */
>> +        .matches = {
>> +            DMI_MATCH(DMI_SYS_VENDOR, "Prowise"),
>> +            DMI_MATCH(DMI_PRODUCT_NAME, "PT301"),
>> +        },
>> +        .driver_data = (void *)(BYT_RT5640_IN1_MAP |
>> +                    BYT_RT5640_JD_SRC_JD2_IN4N |
>> +                    BYT_RT5640_OVCD_TH_2000UA |
>> +                    BYT_RT5640_OVCD_SF_0P75 |
>> +                    BYT_RT5640_DIFF_MIC |
>> +                    BYT_RT5640_SSP0_AIF1 |
>> +                    BYT_RT5640_MCLK_EN),
>> +    },
>>       {
>>           .matches = {
>>               DMI_MATCH(DMI_BOARD_VENDOR, "TECLAST"),
diff mbox series

Patch

diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
index 8587bd3d1cc1..6df902e3a380 100644
--- a/sound/soc/intel/boards/bytcr_rt5640.c
+++ b/sound/soc/intel/boards/bytcr_rt5640.c
@@ -674,6 +674,20 @@  static const struct dmi_system_id byt_rt5640_quirk_table[] = {
 					BYT_RT5640_SSP0_AIF2 |
 					BYT_RT5640_MCLK_EN),
 	},
+	{
+		/* Prowise PT301 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Prowise"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "PT301"),
+		},
+		.driver_data = (void *)(BYT_RT5640_IN1_MAP |
+					BYT_RT5640_JD_SRC_JD2_IN4N |
+					BYT_RT5640_OVCD_TH_2000UA |
+					BYT_RT5640_OVCD_SF_0P75 |
+					BYT_RT5640_DIFF_MIC |
+					BYT_RT5640_SSP0_AIF1 |
+					BYT_RT5640_MCLK_EN),
+	},
 	{
 		.matches = {
 			DMI_MATCH(DMI_BOARD_VENDOR, "TECLAST"),