ARM: SoC fixes for 4.13
A small number of bugfixes, again nothing serious. - Alexander Dahl found multiple bugs in the Atmel memory interface driver - A randconfig build fix for at91 was incomplete, the second attempt fixes the remaining corner case - One fix for the TI Keystone queue handler - The Odroid XU4 HDMI port (added in 4.13) needs a small DT fix -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAWZ7eqmCrR//JCVInAQIklg/8DNhWPxYzlsCEDN3l2/NdMKeUxQebVEs8 uxSviP3k95nk0G1GwpExX4ywhKRjtdGiwjGtpajtRW06OSTwsd44k1NWMSb2ezUl 01bEjakd/n0OKE9HSuH2ZVs7Wr6BI/4wGhlf5lyB7iq8nuwqOj4w+UBF62aqV3e/ 1I9lsumyzwoKo2egDwSusdhivY/IBLggjZGH/Zm3iHzQH5PAM9t701e7/Cc65Pv5 67RUmMbHY5zlTmXtvNlSfw2bMrgXBAh/e5qlaxu/FSxqw9iV2fFikOgjFGGQYofV /aPiJogAoI1g5aMcq6EwToo1rc9ct9dXHmaquRiPCHEsBSq6DENQ3qC7jwByyaHq Owzm5Hqoiw6hQ0ERef0zl+0vxwKwAFjDLhAufl3qA4Nihnt8BYpAi72qjMI09fM5 6SR0JHqmlxSg7lydjXORtYtbL40Eiige529LD1lgS5L1WC/p2sVRXrzkyPsiSbdG HGuYOQWSVRqmihV/WrWYf6gIvcSapxes1SfPGECmGsxPQaSOpQITn9p1kpjtP+u1 KryKKCc93uO+Tk3UgOcujEzT7/+MgQDEksmukXdcD8KS4vK33QPE7SdKAJHvKFo+ Xu8wis5SqHtqga7KMU2qoDzPFyiTSSC0Hry/fEghOCRNguD9jS19DDLdggGXJkV0 +hhvq41jWJA= =efYA -----END PGP SIGNATURE----- Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Arnd Bergmann: "A small number of bugfixes, again nothing serious. - Alexander Dahl found multiple bugs in the Atmel memory interface driver - A randconfig build fix for at91 was incomplete, the second attempt fixes the remaining corner case - One fix for the TI Keystone queue handler - The Odroid XU4 HDMI port (added in 4.13) needs a small DT fix" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: dts: exynos: add needs-hpd for Odroid-XU3/4 ARM: at91: don't select CONFIG_ARM_CPU_SUSPEND for old platforms soc: ti: knav: Add a NULL pointer check for kdev in knav_pool_create memory: atmel-ebi: Fix smc cycle xlate converter memory: atmel-ebi: Allow t_DF timings of zero ns memory: atmel-ebi: Fix smc timing return value evaluation
This commit is contained in:
Коммит
1cffe5955f
|
@ -266,6 +266,7 @@
|
|||
|
||||
&hdmicec {
|
||||
status = "okay";
|
||||
needs-hpd;
|
||||
};
|
||||
|
||||
&hsi2c_4 {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
menuconfig ARCH_AT91
|
||||
bool "Atmel SoCs"
|
||||
depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_CPU_SUSPEND if PM && ARCH_MULTI_V7
|
||||
select COMMON_CLK_AT91
|
||||
select GPIOLIB
|
||||
select PINCTRL
|
||||
|
|
|
@ -608,6 +608,9 @@ static void __init at91_pm_init(void (*pm_idle)(void))
|
|||
|
||||
void __init at91rm9200_pm_init(void)
|
||||
{
|
||||
if (!IS_ENABLED(CONFIG_SOC_AT91RM9200))
|
||||
return;
|
||||
|
||||
at91_dt_ramc();
|
||||
|
||||
/*
|
||||
|
@ -620,18 +623,27 @@ void __init at91rm9200_pm_init(void)
|
|||
|
||||
void __init at91sam9_pm_init(void)
|
||||
{
|
||||
if (!IS_ENABLED(CONFIG_SOC_AT91SAM9))
|
||||
return;
|
||||
|
||||
at91_dt_ramc();
|
||||
at91_pm_init(at91sam9_idle);
|
||||
}
|
||||
|
||||
void __init sama5_pm_init(void)
|
||||
{
|
||||
if (!IS_ENABLED(CONFIG_SOC_SAMA5))
|
||||
return;
|
||||
|
||||
at91_dt_ramc();
|
||||
at91_pm_init(NULL);
|
||||
}
|
||||
|
||||
void __init sama5d2_pm_init(void)
|
||||
{
|
||||
if (!IS_ENABLED(CONFIG_SOC_SAMA5D2))
|
||||
return;
|
||||
|
||||
at91_pm_backup_init();
|
||||
sama5_pm_init();
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ struct atmel_smc_timing_xlate {
|
|||
{ .name = nm, .converter = atmel_smc_cs_conf_set_pulse, .shift = pos}
|
||||
|
||||
#define ATMEL_SMC_CYCLE_XLATE(nm, pos) \
|
||||
{ .name = nm, .converter = atmel_smc_cs_conf_set_setup, .shift = pos}
|
||||
{ .name = nm, .converter = atmel_smc_cs_conf_set_cycle, .shift = pos}
|
||||
|
||||
static void at91sam9_ebi_get_config(struct atmel_ebi_dev *ebid,
|
||||
struct atmel_ebi_dev_config *conf)
|
||||
|
@ -120,12 +120,14 @@ static int atmel_ebi_xslate_smc_timings(struct atmel_ebi_dev *ebid,
|
|||
if (!ret) {
|
||||
required = true;
|
||||
ncycles = DIV_ROUND_UP(val, clk_period_ns);
|
||||
if (ncycles > ATMEL_SMC_MODE_TDF_MAX ||
|
||||
ncycles < ATMEL_SMC_MODE_TDF_MIN) {
|
||||
if (ncycles > ATMEL_SMC_MODE_TDF_MAX) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (ncycles < ATMEL_SMC_MODE_TDF_MIN)
|
||||
ncycles = ATMEL_SMC_MODE_TDF_MIN;
|
||||
|
||||
smcconf->mode |= ATMEL_SMC_MODE_TDF(ncycles);
|
||||
}
|
||||
|
||||
|
@ -263,7 +265,7 @@ static int atmel_ebi_xslate_smc_config(struct atmel_ebi_dev *ebid,
|
|||
}
|
||||
|
||||
ret = atmel_ebi_xslate_smc_timings(ebid, np, &conf->smcconf);
|
||||
if (ret)
|
||||
if (ret < 0)
|
||||
return -EINVAL;
|
||||
|
||||
if ((ret > 0 && !required) || (!ret && required)) {
|
||||
|
|
|
@ -206,7 +206,7 @@ EXPORT_SYMBOL_GPL(atmel_smc_cs_conf_set_pulse);
|
|||
* parameter
|
||||
*
|
||||
* This function encodes the @ncycles value as described in the datasheet
|
||||
* (section "SMC Pulse Register"), and then stores the result in the
|
||||
* (section "SMC Cycle Register"), and then stores the result in the
|
||||
* @conf->setup field at @shift position.
|
||||
*
|
||||
* Returns -EINVAL if @shift is invalid, -ERANGE if @ncycles does not fit in
|
||||
|
|
|
@ -745,6 +745,9 @@ void *knav_pool_create(const char *name,
|
|||
bool slot_found;
|
||||
int ret;
|
||||
|
||||
if (!kdev)
|
||||
return ERR_PTR(-EPROBE_DEFER);
|
||||
|
||||
if (!kdev->dev)
|
||||
return ERR_PTR(-ENODEV);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче