mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-15 23:22:19 +00:00
kernel: bump 5.10 to 5.10.101
Removed upstreamed: pending-5.10/841-USB-serial-option-add-ZTE-MF286D-modem.patch[1] bcm27xx/950-0592-drm-vc4-Allow-DBLCLK-modes-even-if-horz-timing-is-od.patch[2] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.101&id=7113440a36c741efd7c76e3d70b3634100120cdb 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.101&id=21c890ca8eaecea06cabb92be2a53a6f26f56383 Build system: x86_64 Build-tested: bcm2711/RPi4B, mt7622/RT3200 Run-tested: bcm2711/RPi4B, mt7622/RT3200 Signed-off-by: John Audia <graysky@archlinux.us>
This commit is contained in:
parent
02e42f0650
commit
a2d4b5711a
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.10 = .100
|
||||
LINUX_KERNEL_HASH-5.10.100 = d56965afc9b6a3d26d53db40ccd37fd9d15f2ca6bfd54ef6f0f8b6e92c170999
|
||||
LINUX_VERSION-5.10 = .101
|
||||
LINUX_KERNEL_HASH-5.10.101 = 0749258cb7ee47c478dfc34857e8930d41bfe0b074e80e9f57cbfa56d0ba1c8e
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1491,9 +1491,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1493,9 +1493,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
u32 value;
|
||||
int ret;
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
|
||||
vc4_hdmi, "vc4",
|
||||
CEC_CAP_DEFAULTS |
|
||||
@@ -1926,7 +1923,6 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -1928,7 +1925,6 @@ static const struct vc4_hdmi_variant bcm
|
||||
.debugfs_name = "hdmi_regs",
|
||||
.card_name = "vc4-hdmi",
|
||||
.max_pixel_clock = 162000000,
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -989,6 +989,44 @@ static void vc4_hdmi_audio_shutdown(stru
|
||||
@@ -991,6 +991,44 @@ static void vc4_hdmi_audio_shutdown(stru
|
||||
vc4_hdmi->audio.substream = NULL;
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
/* HDMI audio codec callbacks */
|
||||
static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream,
|
||||
struct snd_pcm_hw_params *params,
|
||||
@@ -999,6 +1037,8 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
@@ -1001,6 +1039,8 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
struct device *dev = &vc4_hdmi->pdev->dev;
|
||||
u32 audio_packet_config, channel_mask;
|
||||
u32 channel_map;
|
||||
@ -68,7 +68,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
if (substream != vc4_hdmi->audio.substream)
|
||||
return -EINVAL;
|
||||
@@ -1019,6 +1059,14 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
@@ -1021,6 +1061,14 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
|
||||
vc4_hdmi_audio_set_mai_clock(vc4_hdmi);
|
||||
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
#include <sound/dmaengine_pcm.h>
|
||||
#include <sound/pcm_drm_eld.h>
|
||||
#include <sound/pcm_params.h>
|
||||
@@ -1180,6 +1181,47 @@ static int vc4_hdmi_audio_eld_ctl_get(st
|
||||
@@ -1182,6 +1183,47 @@ static int vc4_hdmi_audio_eld_ctl_get(st
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = {
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ |
|
||||
@@ -1189,6 +1231,19 @@ static const struct snd_kcontrol_new vc4
|
||||
@@ -1191,6 +1233,19 @@ static const struct snd_kcontrol_new vc4
|
||||
.info = vc4_hdmi_audio_eld_ctl_info,
|
||||
.get = vc4_hdmi_audio_eld_ctl_get,
|
||||
},
|
||||
@ -94,7 +94,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
|
||||
@@ -1309,6 +1364,11 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1311,6 +1366,11 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
|
||||
vc4_hdmi->audio.dma_data.maxburst = 2;
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1029,9 +1029,8 @@ static int sample_rate_to_mai_fmt(int sa
|
||||
@@ -1031,9 +1031,8 @@ static int sample_rate_to_mai_fmt(int sa
|
||||
}
|
||||
|
||||
/* HDMI audio codec callbacks */
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
{
|
||||
struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai);
|
||||
struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
|
||||
@@ -1044,12 +1043,15 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
@@ -1046,12 +1045,15 @@ static int vc4_hdmi_audio_hw_params(stru
|
||||
if (substream != vc4_hdmi->audio.substream)
|
||||
return -EINVAL;
|
||||
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
|
||||
HDMI_WRITE(HDMI_MAI_CTL,
|
||||
VC4_HD_MAI_CTL_RESET |
|
||||
@@ -1271,7 +1273,7 @@ static const struct snd_soc_component_dr
|
||||
@@ -1273,7 +1275,7 @@ static const struct snd_soc_component_dr
|
||||
static const struct snd_soc_dai_ops vc4_hdmi_audio_dai_ops = {
|
||||
.startup = vc4_hdmi_audio_startup,
|
||||
.shutdown = vc4_hdmi_audio_shutdown,
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1063,7 +1063,11 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
@@ -1065,7 +1065,11 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
vc4_hdmi_audio_set_mai_clock(vc4_hdmi);
|
||||
|
||||
mai_sample_rate = sample_rate_to_mai_fmt(vc4_hdmi->audio.samplerate);
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1084,22 +1084,12 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
@@ -1086,22 +1086,12 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
audio_packet_config |= VC4_SET_FIELD(channel_mask,
|
||||
VC4_HDMI_AUDIO_PACKET_CEA_MASK);
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1093,6 +1093,7 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
@@ -1095,6 +1095,7 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
|
||||
HDMI_WRITE(HDMI_MAI_CONFIG,
|
||||
VC4_HDMI_MAI_CONFIG_BIT_REVERSE |
|
||||
|
@ -191,7 +191,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
{}, \
|
||||
}; \
|
||||
\
|
||||
@@ -344,6 +355,11 @@ static void __exit fbtft_driver_module_e
|
||||
@@ -347,6 +358,11 @@ static void __exit fbtft_driver_module_e
|
||||
module_init(fbtft_driver_module_init); \
|
||||
module_exit(fbtft_driver_module_exit);
|
||||
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1331,10 +1331,12 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1333,10 +1333,12 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
const __be32 *addr;
|
||||
int index;
|
||||
int ret;
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1732,6 +1738,7 @@ static int vc5_hdmi_init_resources(struc
|
||||
@@ -1734,6 +1740,7 @@ static int vc5_hdmi_init_resources(struc
|
||||
struct platform_device *pdev = vc4_hdmi->pdev;
|
||||
struct device *dev = &pdev->dev;
|
||||
struct resource *res;
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi");
|
||||
if (!res)
|
||||
@@ -1822,6 +1829,38 @@ static int vc5_hdmi_init_resources(struc
|
||||
@@ -1824,6 +1831,38 @@ static int vc5_hdmi_init_resources(struc
|
||||
return PTR_ERR(vc4_hdmi->reset);
|
||||
}
|
||||
|
||||
|
@ -76,7 +76,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
struct drm_display_mode *mode = &crtc_state->adjusted_mode;
|
||||
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
|
||||
unsigned long long pixel_rate = mode->clock * 1000;
|
||||
@@ -875,6 +897,8 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
@@ -876,6 +898,8 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
if (pixel_rate > vc4_hdmi->variant->max_pixel_clock)
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -141,7 +141,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
}
|
||||
|
||||
static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder,
|
||||
@@ -891,6 +951,14 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
@@ -892,6 +952,14 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
pixel_rate = mode->clock * 1000;
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
value |= clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT;
|
||||
HDMI_WRITE(HDMI_CEC_CNTRL_1, value);
|
||||
}
|
||||
@@ -1867,6 +1867,7 @@ static int vc4_hdmi_init_resources(struc
|
||||
@@ -1869,6 +1869,7 @@ static int vc4_hdmi_init_resources(struc
|
||||
return PTR_ERR(vc4_hdmi->hsm_clock);
|
||||
}
|
||||
vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock;
|
||||
@ -35,7 +35,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1961,6 +1962,12 @@ static int vc5_hdmi_init_resources(struc
|
||||
@@ -1963,6 +1964,12 @@ static int vc5_hdmi_init_resources(struc
|
||||
return PTR_ERR(vc4_hdmi->audio_clock);
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1572,15 +1572,22 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
@@ -1574,15 +1574,22 @@ static int vc4_hdmi_audio_init(struct vc
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DRM_VC4_HDMI_CEC
|
||||
@ -48,7 +48,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
cec_transmit_done(vc4_hdmi->cec_adap, CEC_TX_STATUS_OK,
|
||||
0, 0, 0, 0);
|
||||
} else {
|
||||
@@ -1594,6 +1601,19 @@ static irqreturn_t vc4_cec_irq_handler_t
|
||||
@@ -1596,6 +1603,19 @@ static irqreturn_t vc4_cec_irq_handler_t
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1)
|
||||
{
|
||||
struct drm_device *dev = vc4_hdmi->connector.dev;
|
||||
@@ -1618,31 +1638,55 @@ static void vc4_cec_read_msg(struct vc4_
|
||||
@@ -1620,31 +1640,55 @@ static void vc4_cec_read_msg(struct vc4_
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1723,9 +1723,11 @@ static int vc4_hdmi_cec_adap_enable(stru
|
||||
@@ -1725,9 +1725,11 @@ static int vc4_hdmi_cec_adap_enable(stru
|
||||
((3600 / usecs) << VC4_HDMI_CEC_CNT_TO_3600_US_SHIFT) |
|
||||
((3500 / usecs) << VC4_HDMI_CEC_CNT_TO_3500_US_SHIFT));
|
||||
|
||||
@ -34,7 +34,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
HDMI_WRITE(HDMI_CEC_CNTRL_5, val |
|
||||
VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
|
||||
}
|
||||
@@ -1797,8 +1799,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1799,8 +1801,6 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector);
|
||||
cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info);
|
||||
|
||||
@ -43,7 +43,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
value = HDMI_READ(HDMI_CEC_CNTRL_1);
|
||||
/* Set the logical address to Unregistered */
|
||||
value |= VC4_HDMI_CEC_ADDR_MASK;
|
||||
@@ -1806,12 +1806,32 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1808,12 +1808,32 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
|
||||
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
|
||||
|
||||
@ -82,7 +82,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
|
||||
if (ret < 0)
|
||||
@@ -2286,6 +2306,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2288,6 +2308,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
PHY_LANE_CK,
|
||||
},
|
||||
.unsupported_odd_h_timings = true,
|
||||
@ -90,7 +90,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
.init_resources = vc5_hdmi_init_resources,
|
||||
.csc_setup = vc5_hdmi_csc_setup,
|
||||
@@ -2312,6 +2333,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2314,6 +2335,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
PHY_LANE_2,
|
||||
},
|
||||
.unsupported_odd_h_timings = true,
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1785,9 +1785,15 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
@@ -1787,9 +1787,15 @@ static int vc4_hdmi_cec_init(struct vc4_
|
||||
{
|
||||
struct cec_connector_info conn_info;
|
||||
struct platform_device *pdev = vc4_hdmi->pdev;
|
||||
|
@ -61,7 +61,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
}
|
||||
|
||||
static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
|
||||
@@ -2296,6 +2321,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2298,6 +2323,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_rng_enable = vc4_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc4_hdmi_phy_rng_disable,
|
||||
.channel_map = vc4_hdmi_channel_map,
|
||||
@ -69,7 +69,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
};
|
||||
|
||||
static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = {
|
||||
@@ -2323,6 +2349,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2325,6 +2351,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
|
||||
.channel_map = vc5_hdmi_channel_map,
|
||||
@ -77,7 +77,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
};
|
||||
|
||||
static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = {
|
||||
@@ -2350,6 +2377,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2352,6 +2379,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
|
||||
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
|
||||
.channel_map = vc5_hdmi_channel_map,
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1295,10 +1295,10 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
@@ -1297,10 +1297,10 @@ static int vc4_hdmi_audio_prepare(struct
|
||||
|
||||
/* Set the MAI threshold */
|
||||
HDMI_WRITE(HDMI_MAI_THR,
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -2432,7 +2432,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
@@ -2434,7 +2434,7 @@ static const struct vc4_hdmi_variant bcm
|
||||
.encoder_type = VC4_ENCODER_TYPE_HDMI0,
|
||||
.debugfs_name = "hdmi0_regs",
|
||||
.card_name = "vc4-hdmi-0",
|
||||
|
@ -1,42 +0,0 @@
|
||||
From 9f7c0728efb0036f6f197126aa62da40cdf4713a Mon Sep 17 00:00:00 2001
|
||||
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
Date: Wed, 28 Apr 2021 16:14:21 +0100
|
||||
Subject: [PATCH] drm/vc4: Allow DBLCLK modes even if horz timing is
|
||||
odd.
|
||||
|
||||
The 2711 pixel valve can't produce odd horizontal timings, and
|
||||
checks were added to vc4_hdmi_encoder_atomic_check and
|
||||
vc4_hdmi_encoder_mode_valid to filter out/block selection of
|
||||
such modes.
|
||||
|
||||
Modes with DRM_MODE_FLAG_DBLCLK double all the horizontal timing
|
||||
values before programming them into the PV. The PV values,
|
||||
therefore, can not be odd, and so the modes can be supported.
|
||||
|
||||
Amend the filtering appropriately.
|
||||
|
||||
See https://github.com/raspberrypi/linux/issues/4307
|
||||
|
||||
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
---
|
||||
drivers/gpu/drm/vc4/vc4_hdmi.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -1067,6 +1067,7 @@ static int vc4_hdmi_encoder_atomic_check
|
||||
unsigned long long tmds_rate;
|
||||
|
||||
if (vc4_hdmi->variant->unsupported_odd_h_timings &&
|
||||
+ !(mode->flags & DRM_MODE_FLAG_DBLCLK) &&
|
||||
((mode->hdisplay % 2) || (mode->hsync_start % 2) ||
|
||||
(mode->hsync_end % 2) || (mode->htotal % 2)))
|
||||
return -EINVAL;
|
||||
@@ -1111,6 +1112,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_e
|
||||
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
|
||||
|
||||
if (vc4_hdmi->variant->unsupported_odd_h_timings &&
|
||||
+ !(mode->flags & DRM_MODE_FLAG_DBLCLK) &&
|
||||
((mode->hdisplay % 2) || (mode->hsync_start % 2) ||
|
||||
(mode->hsync_end % 2) || (mode->htotal % 2)))
|
||||
return MODE_H_ILLEGAL;
|
@ -118,7 +118,7 @@ Signed-off-by: Joerg Quinten <aBUGSworstnightmare@gmail.com>
|
||||
- MEDIA_BUS_FMT_RGB666_1X24_CPADHI
|
||||
--- a/drivers/gpu/drm/panel/panel-simple.c
|
||||
+++ b/drivers/gpu/drm/panel/panel-simple.c
|
||||
@@ -2093,6 +2093,38 @@ static const struct panel_desc innolux_a
|
||||
@@ -2094,6 +2094,38 @@ static const struct panel_desc innolux_a
|
||||
.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
|
||||
};
|
||||
|
||||
@ -157,7 +157,7 @@ Signed-off-by: Joerg Quinten <aBUGSworstnightmare@gmail.com>
|
||||
static const struct drm_display_mode innolux_at070tn92_mode = {
|
||||
.clock = 33333,
|
||||
.hdisplay = 800,
|
||||
@@ -4076,6 +4108,9 @@ static const struct of_device_id platfor
|
||||
@@ -4077,6 +4109,9 @@ static const struct of_device_id platfor
|
||||
.compatible = "innolux,at043tn24",
|
||||
.data = &innolux_at043tn24,
|
||||
}, {
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1432,5 +1432,5 @@ subdir-y := overlays
|
||||
@@ -1433,5 +1433,5 @@ subdir-y := overlays
|
||||
|
||||
# Enable fixups to support overlays on BCM2835 platforms
|
||||
ifeq ($(CONFIG_ARCH_BCM2835),y)
|
||||
|
@ -68,7 +68,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
offset = CORE_STS_OVERRIDE_IMP;
|
||||
else
|
||||
offset = CORE_STS_OVERRIDE_IMP2;
|
||||
@@ -708,7 +709,8 @@ static void bcm_sf2_sw_mac_link_down(str
|
||||
@@ -711,7 +712,8 @@ static void bcm_sf2_sw_mac_link_down(str
|
||||
u32 reg, offset;
|
||||
|
||||
if (port != core_readl(priv, CORE_IMP0_PRT_ID)) {
|
||||
@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
offset = CORE_STS_OVERRIDE_GMIIP_PORT(port);
|
||||
else
|
||||
offset = CORE_STS_OVERRIDE_GMIIP2_PORT(port);
|
||||
@@ -735,7 +737,8 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
@@ -738,7 +740,8 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
bcm_sf2_sw_mac_link_set(ds, port, interface, true);
|
||||
|
||||
if (port != core_readl(priv, CORE_IMP0_PRT_ID)) {
|
||||
@ -88,7 +88,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
offset = CORE_STS_OVERRIDE_GMIIP_PORT(port);
|
||||
else
|
||||
offset = CORE_STS_OVERRIDE_GMIIP2_PORT(port);
|
||||
@@ -1128,6 +1131,30 @@ struct bcm_sf2_of_data {
|
||||
@@ -1131,6 +1134,30 @@ struct bcm_sf2_of_data {
|
||||
unsigned int num_cfp_rules;
|
||||
};
|
||||
|
||||
@ -119,7 +119,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
/* Register offsets for the SWITCH_REG_* block */
|
||||
static const u16 bcm_sf2_7445_reg_offsets[] = {
|
||||
[REG_SWITCH_CNTRL] = 0x00,
|
||||
@@ -1176,6 +1203,9 @@ static const struct bcm_sf2_of_data bcm_
|
||||
@@ -1179,6 +1206,9 @@ static const struct bcm_sf2_of_data bcm_
|
||||
};
|
||||
|
||||
static const struct of_device_id bcm_sf2_of_match[] = {
|
||||
|
@ -82,7 +82,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static void bcm_sf2_intr_disable(struct bcm_sf2_priv *priv)
|
||||
{
|
||||
intrl2_0_mask_set(priv, 0xffffffff);
|
||||
@@ -869,6 +907,8 @@ static int bcm_sf2_sw_resume(struct dsa_
|
||||
@@ -872,6 +910,8 @@ static int bcm_sf2_sw_resume(struct dsa_
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
ret = bcm_sf2_cfp_resume(ds);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -1140,6 +1180,7 @@ struct bcm_sf2_of_data {
|
||||
@@ -1143,6 +1183,7 @@ struct bcm_sf2_of_data {
|
||||
const u16 *reg_offsets;
|
||||
unsigned int core_reg_align;
|
||||
unsigned int num_cfp_rules;
|
||||
@ -99,7 +99,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const u16 bcm_sf2_4908_reg_offsets[] = {
|
||||
@@ -1164,6 +1205,7 @@ static const struct bcm_sf2_of_data bcm_
|
||||
@@ -1167,6 +1208,7 @@ static const struct bcm_sf2_of_data bcm_
|
||||
.core_reg_align = 0,
|
||||
.reg_offsets = bcm_sf2_4908_reg_offsets,
|
||||
.num_cfp_rules = 0, /* FIXME */
|
||||
@ -107,7 +107,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
/* Register offsets for the SWITCH_REG_* block */
|
||||
@@ -1274,6 +1316,7 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
@@ -1277,6 +1319,7 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
priv->reg_offsets = data->reg_offsets;
|
||||
priv->core_reg_align = data->core_reg_align;
|
||||
priv->num_cfp_rules = data->num_cfp_rules;
|
||||
@ -115,7 +115,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
priv->rcdev = devm_reset_control_get_optional_exclusive(&pdev->dev,
|
||||
"switch");
|
||||
@@ -1347,6 +1390,8 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
@@ -1350,6 +1393,8 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
goto out_clk_mdiv;
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/bcm_sf2.c
|
||||
+++ b/drivers/net/dsa/bcm_sf2.c
|
||||
@@ -1204,7 +1204,7 @@ static const struct bcm_sf2_of_data bcm_
|
||||
@@ -1207,7 +1207,7 @@ static const struct bcm_sf2_of_data bcm_
|
||||
.type = BCM4908_DEVICE_ID,
|
||||
.core_reg_align = 0,
|
||||
.reg_offsets = bcm_sf2_4908_reg_offsets,
|
||||
|
@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static void bcm_sf2_imp_setup(struct dsa_switch *ds, int port)
|
||||
{
|
||||
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
|
||||
@@ -693,6 +718,7 @@ static void bcm_sf2_sw_mac_config(struct
|
||||
@@ -696,6 +721,7 @@ static void bcm_sf2_sw_mac_config(struct
|
||||
{
|
||||
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
|
||||
u32 id_mode_dis = 0, port_mode;
|
||||
@ -65,7 +65,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
u32 reg;
|
||||
|
||||
if (port == core_readl(priv, CORE_IMP0_PRT_ID))
|
||||
@@ -716,10 +742,12 @@ static void bcm_sf2_sw_mac_config(struct
|
||||
@@ -719,10 +745,12 @@ static void bcm_sf2_sw_mac_config(struct
|
||||
return;
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
reg &= ~ID_MODE_DIS;
|
||||
reg &= ~(PORT_MODE_MASK << PORT_MODE_SHIFT);
|
||||
|
||||
@@ -727,13 +755,14 @@ static void bcm_sf2_sw_mac_config(struct
|
||||
@@ -730,13 +758,14 @@ static void bcm_sf2_sw_mac_config(struct
|
||||
if (id_mode_dis)
|
||||
reg |= ID_MODE_DIS;
|
||||
|
||||
@ -95,7 +95,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
u32 reg;
|
||||
|
||||
if (!phy_interface_mode_is_rgmii(interface) &&
|
||||
@@ -741,13 +770,15 @@ static void bcm_sf2_sw_mac_link_set(stru
|
||||
@@ -744,13 +773,15 @@ static void bcm_sf2_sw_mac_link_set(stru
|
||||
interface != PHY_INTERFACE_MODE_REVMII)
|
||||
return;
|
||||
|
||||
@ -113,7 +113,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
|
||||
static void bcm_sf2_sw_mac_link_down(struct dsa_switch *ds, int port,
|
||||
@@ -781,11 +812,15 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
@@ -784,11 +815,15 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
{
|
||||
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
|
||||
struct ethtool_eee *p = &priv->dev->ports[port].eee;
|
||||
@ -130,7 +130,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (priv->type == BCM4908_DEVICE_ID ||
|
||||
priv->type == BCM7445_DEVICE_ID)
|
||||
offset = CORE_STS_OVERRIDE_GMIIP_PORT(port);
|
||||
@@ -796,7 +831,7 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
@@ -799,7 +834,7 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
interface == PHY_INTERFACE_MODE_RGMII_TXID ||
|
||||
interface == PHY_INTERFACE_MODE_MII ||
|
||||
interface == PHY_INTERFACE_MODE_REVMII) {
|
||||
@ -139,7 +139,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
reg &= ~(RX_PAUSE_EN | TX_PAUSE_EN);
|
||||
|
||||
if (tx_pause)
|
||||
@@ -804,7 +839,7 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
@@ -807,7 +842,7 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
if (rx_pause)
|
||||
reg |= RX_PAUSE_EN;
|
||||
|
||||
|
@ -33,7 +33,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
break;
|
||||
default:
|
||||
switch (port) {
|
||||
@@ -1227,9 +1232,7 @@ static const u16 bcm_sf2_4908_reg_offset
|
||||
@@ -1230,9 +1235,7 @@ static const u16 bcm_sf2_4908_reg_offset
|
||||
[REG_PHY_REVISION] = 0x14,
|
||||
[REG_SPHY_CNTRL] = 0x24,
|
||||
[REG_CROSSBAR] = 0xc8,
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/bcm_sf2.c
|
||||
+++ b/drivers/net/dsa/bcm_sf2.c
|
||||
@@ -821,11 +821,9 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
@@ -824,11 +824,9 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
bcm_sf2_sw_mac_link_set(ds, port, interface, true);
|
||||
|
||||
if (port != core_readl(priv, CORE_IMP0_PRT_ID)) {
|
||||
@ -36,7 +36,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (priv->type == BCM4908_DEVICE_ID ||
|
||||
priv->type == BCM7445_DEVICE_ID)
|
||||
offset = CORE_STS_OVERRIDE_GMIIP_PORT(port);
|
||||
@@ -836,6 +834,7 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
@@ -839,6 +837,7 @@ static void bcm_sf2_sw_mac_link_up(struc
|
||||
interface == PHY_INTERFACE_MODE_RGMII_TXID ||
|
||||
interface == PHY_INTERFACE_MODE_MII ||
|
||||
interface == PHY_INTERFACE_MODE_REVMII) {
|
||||
|
@ -82,7 +82,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1232,9 +1269,14 @@ static const u16 bcm_sf2_4908_reg_offset
|
||||
@@ -1235,9 +1272,14 @@ static const u16 bcm_sf2_4908_reg_offset
|
||||
[REG_SPHY_CNTRL] = 0x24,
|
||||
[REG_CROSSBAR] = 0xc8,
|
||||
[REG_RGMII_11_CNTRL] = 0x014c,
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
--- a/drivers/net/dsa/bcm_sf2.c
|
||||
+++ b/drivers/net/dsa/bcm_sf2.c
|
||||
@@ -1529,10 +1529,14 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
@@ -1532,10 +1532,14 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
rev = reg_readl(priv, REG_PHY_REVISION);
|
||||
priv->hw_params.gphy_rev = rev & PHY_REVISION_MASK;
|
||||
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
--- a/drivers/net/dsa/bcm_sf2.c
|
||||
+++ b/drivers/net/dsa/bcm_sf2.c
|
||||
@@ -1543,6 +1543,12 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
@@ -1546,6 +1546,12 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
priv->hw_params.core_rev >> 8, priv->hw_params.core_rev & 0xff,
|
||||
priv->irq0, priv->irq1);
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/phy/marvell.c
|
||||
+++ b/drivers/net/phy/marvell.c
|
||||
@@ -2140,6 +2140,19 @@ static int marvell_vct7_cable_test_get_s
|
||||
@@ -2141,6 +2141,19 @@ static int marvell_vct7_cable_test_get_s
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HWMON
|
||||
@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static int m88e1121_get_temp(struct phy_device *phydev, long *temp)
|
||||
{
|
||||
int oldpage;
|
||||
@@ -2183,75 +2196,6 @@ error:
|
||||
@@ -2184,75 +2197,6 @@ error:
|
||||
return phy_restore_page(phydev, oldpage, ret);
|
||||
}
|
||||
|
||||
@ -114,7 +114,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static int m88e1510_get_temp(struct phy_device *phydev, long *temp)
|
||||
{
|
||||
int ret;
|
||||
@@ -2314,92 +2258,6 @@ static int m88e1510_get_temp_alarm(struc
|
||||
@@ -2315,92 +2259,6 @@ static int m88e1510_get_temp_alarm(struc
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -207,7 +207,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static int m88e6390_get_temp(struct phy_device *phydev, long *temp)
|
||||
{
|
||||
int sum = 0;
|
||||
@@ -2458,63 +2316,112 @@ error:
|
||||
@@ -2459,63 +2317,112 @@ error:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -343,7 +343,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static int marvell_hwmon_name(struct phy_device *phydev)
|
||||
@@ -2537,49 +2444,48 @@ static int marvell_hwmon_name(struct phy
|
||||
@@ -2538,49 +2445,48 @@ static int marvell_hwmon_name(struct phy
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -416,7 +416,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -2595,40 +2501,7 @@ static int marvell_probe(struct phy_devi
|
||||
@@ -2596,40 +2502,7 @@ static int marvell_probe(struct phy_devi
|
||||
|
||||
phydev->priv = priv;
|
||||
|
||||
@ -458,7 +458,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
|
||||
static struct phy_driver marvell_drivers[] = {
|
||||
@@ -2713,8 +2586,9 @@ static struct phy_driver marvell_drivers
|
||||
@@ -2714,8 +2587,9 @@ static struct phy_driver marvell_drivers
|
||||
.phy_id = MARVELL_PHY_ID_88E1121R,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1121R",
|
||||
@ -469,7 +469,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
.config_init = marvell_config_init,
|
||||
.config_aneg = m88e1121_config_aneg,
|
||||
.read_status = marvell_read_status,
|
||||
@@ -2833,9 +2707,10 @@ static struct phy_driver marvell_drivers
|
||||
@@ -2834,9 +2708,10 @@ static struct phy_driver marvell_drivers
|
||||
.phy_id = MARVELL_PHY_ID_88E1510,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1510",
|
||||
@ -481,7 +481,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
.config_init = m88e1510_config_init,
|
||||
.config_aneg = m88e1510_config_aneg,
|
||||
.read_status = marvell_read_status,
|
||||
@@ -2862,9 +2737,10 @@ static struct phy_driver marvell_drivers
|
||||
@@ -2863,9 +2738,10 @@ static struct phy_driver marvell_drivers
|
||||
.phy_id = MARVELL_PHY_ID_88E1540,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1540",
|
||||
@ -493,7 +493,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
.config_init = marvell_config_init,
|
||||
.config_aneg = m88e1510_config_aneg,
|
||||
.read_status = marvell_read_status,
|
||||
@@ -2888,7 +2764,8 @@ static struct phy_driver marvell_drivers
|
||||
@@ -2889,7 +2765,8 @@ static struct phy_driver marvell_drivers
|
||||
.phy_id = MARVELL_PHY_ID_88E1545,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1545",
|
||||
@ -503,7 +503,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.flags = PHY_POLL_CABLE_TEST,
|
||||
.config_init = marvell_config_init,
|
||||
@@ -2934,9 +2811,10 @@ static struct phy_driver marvell_drivers
|
||||
@@ -2935,9 +2812,10 @@ static struct phy_driver marvell_drivers
|
||||
.phy_id = MARVELL_PHY_ID_88E6341_FAMILY,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E6341 Family",
|
||||
@ -515,7 +515,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
.config_init = marvell_config_init,
|
||||
.config_aneg = m88e6390_config_aneg,
|
||||
.read_status = marvell_read_status,
|
||||
@@ -2960,9 +2838,10 @@ static struct phy_driver marvell_drivers
|
||||
@@ -2961,9 +2839,10 @@ static struct phy_driver marvell_drivers
|
||||
.phy_id = MARVELL_PHY_ID_88E6390_FAMILY,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E6390 Family",
|
||||
@ -527,7 +527,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
.config_init = marvell_config_init,
|
||||
.config_aneg = m88e6390_config_aneg,
|
||||
.read_status = marvell_read_status,
|
||||
@@ -2986,7 +2865,8 @@ static struct phy_driver marvell_drivers
|
||||
@@ -2987,7 +2866,8 @@ static struct phy_driver marvell_drivers
|
||||
.phy_id = MARVELL_PHY_ID_88E1340S,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1340S",
|
||||
@ -537,7 +537,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.config_init = marvell_config_init,
|
||||
.config_aneg = m88e1510_config_aneg,
|
||||
@@ -3008,7 +2888,8 @@ static struct phy_driver marvell_drivers
|
||||
@@ -3009,7 +2889,8 @@ static struct phy_driver marvell_drivers
|
||||
.phy_id = MARVELL_PHY_ID_88E1548P,
|
||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||
.name = "Marvell 88E1548P",
|
||||
|
@ -49,7 +49,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
#define MII_88E1510_GEN_CTRL_REG_1_RESET 0x8000 /* Soft reset */
|
||||
|
||||
#define MII_VCT5_TX_RX_MDI0_COUPLING 0x10
|
||||
@@ -2504,6 +2513,100 @@ static int marvell_probe(struct phy_devi
|
||||
@@ -2505,6 +2514,100 @@ static int marvell_probe(struct phy_devi
|
||||
return marvell_hwmon_probe(phydev);
|
||||
}
|
||||
|
||||
@ -150,7 +150,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
static struct phy_driver marvell_drivers[] = {
|
||||
{
|
||||
.phy_id = MARVELL_PHY_ID_88E1101,
|
||||
@@ -2710,7 +2813,7 @@ static struct phy_driver marvell_drivers
|
||||
@@ -2711,7 +2814,7 @@ static struct phy_driver marvell_drivers
|
||||
.driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
|
||||
.features = PHY_GBIT_FIBRE_FEATURES,
|
||||
.flags = PHY_POLL_CABLE_TEST,
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
|
||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
@@ -5431,6 +5431,7 @@ static int mv88e6xxx_register_switch(str
|
||||
@@ -5436,6 +5436,7 @@ static int mv88e6xxx_register_switch(str
|
||||
ds->ops = &mv88e6xxx_switch_ops;
|
||||
ds->ageing_time_min = chip->info->age_time_coeff;
|
||||
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
|
||||
|
@ -1,57 +0,0 @@
|
||||
From 67ae6887854e4b6e736c34d4fd7087540ed31d4e Mon Sep 17 00:00:00 2001
|
||||
From: Pawel Dembicki <paweldembicki@gmail.com>
|
||||
Date: Tue, 11 Jan 2022 21:59:50 +0100
|
||||
Subject: [PATCH] USB: serial: option: add ZTE MF286D modem
|
||||
|
||||
Modem from ZTE MF286D is an Qualcomm MDM9250 based 3G/4G modem.
|
||||
|
||||
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0
|
||||
D: Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
|
||||
P: Vendor=19d2 ProdID=1485 Rev=52.87
|
||||
S: Manufacturer=ZTE,Incorporated
|
||||
S: Product=ZTE Technologies MSM
|
||||
S: SerialNumber=MF286DZTED000000
|
||||
C:* #Ifs= 7 Cfg#= 1 Atr=80 MxPwr=896mA
|
||||
A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
|
||||
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=ff Driver=rndis_host
|
||||
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
|
||||
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
|
||||
E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
|
||||
E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
|
||||
E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
|
||||
E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
|
||||
E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
|
||||
E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
|
||||
E: Ad=88(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
|
||||
E: Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
E: Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs
|
||||
E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
E: Ad=89(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
|
||||
|
||||
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
|
||||
|
||||
https://lore.kernel.org/linux-usb/20220111221205.14662-1-paweldembicki@gmail.com/
|
||||
---
|
||||
drivers/usb/serial/option.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -1649,6 +1649,8 @@ static const struct usb_device_id option
|
||||
.driver_info = RSVD(2) },
|
||||
{ USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x1476, 0xff) }, /* GosunCn ZTE WeLink ME3630 (ECM/NCM mode) */
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1481, 0xff, 0x00, 0x00) }, /* ZTE MF871A */
|
||||
+ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1485, 0xff, 0xff, 0xff), /* ZTE MF286D */
|
||||
+ .driver_info = RSVD(5) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) },
|
@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -902,11 +902,74 @@ dtb-$(CONFIG_ARCH_QCOM) += \
|
||||
@@ -903,11 +903,74 @@ dtb-$(CONFIG_ARCH_QCOM) += \
|
||||
qcom-apq8074-dragonboard.dtb \
|
||||
qcom-apq8084-ifc6540.dtb \
|
||||
qcom-apq8084-mtp.dtb \
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -907,8 +907,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \
|
||||
@@ -908,8 +908,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \
|
||||
qcom-ipq4019-ap.dk04.1-c3.dtb \
|
||||
qcom-ipq4019-ap.dk07.1-c1.dtb \
|
||||
qcom-ipq4019-ap.dk07.1-c2.dtb \
|
||||
|
@ -30,7 +30,7 @@ Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
|
||||
struct gswip_hw_info {
|
||||
int max_ports;
|
||||
int cpu_port;
|
||||
@@ -851,10 +856,6 @@ static int gswip_setup(struct dsa_switch
|
||||
@@ -856,10 +861,6 @@ static int gswip_setup(struct dsa_switch
|
||||
gswip_switch_mask(priv, 0, GSWIP_PCE_PCTRL_0_INGRESS,
|
||||
GSWIP_PCE_PCTRL_0p(cpu_port));
|
||||
|
||||
@ -41,7 +41,7 @@ Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
|
||||
gswip_switch_mask(priv, 0, GSWIP_BM_QUEUE_GCTRL_GL_MOD,
|
||||
GSWIP_BM_QUEUE_GCTRL);
|
||||
|
||||
@@ -871,6 +872,8 @@ static int gswip_setup(struct dsa_switch
|
||||
@@ -876,6 +877,8 @@ static int gswip_setup(struct dsa_switch
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -50,7 +50,7 @@ Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
|
||||
gswip_port_enable(ds, cpu_port, NULL);
|
||||
return 0;
|
||||
}
|
||||
@@ -1433,6 +1436,39 @@ static int gswip_port_fdb_dump(struct ds
|
||||
@@ -1438,6 +1441,39 @@ static int gswip_port_fdb_dump(struct ds
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
|
||||
static void gswip_phylink_validate(struct dsa_switch *ds, int port,
|
||||
unsigned long *supported,
|
||||
struct phylink_link_state *state)
|
||||
@@ -1776,6 +1812,8 @@ static const struct dsa_switch_ops gswip
|
||||
@@ -1781,6 +1817,8 @@ static const struct dsa_switch_ops gswip
|
||||
.port_fdb_add = gswip_port_fdb_add,
|
||||
.port_fdb_del = gswip_port_fdb_del,
|
||||
.port_fdb_dump = gswip_port_fdb_dump,
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1202,6 +1202,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
|
||||
@@ -1203,6 +1203,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
|
||||
sun8i-h3-orangepi-zero-plus2.dtb \
|
||||
sun8i-h3-rervision-dvk.dtb \
|
||||
sun8i-h3-emlid-neutis-n5h3-devboard.dtb \
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Jayantajit Gogoi <jayanta.gogoi525@gmail.com>
|
||||
- const: gemei,g9
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1192,6 +1192,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
|
||||
@@ -1193,6 +1193,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
|
||||
sun8i-h3-nanopi-m1-plus.dtb \
|
||||
sun8i-h3-nanopi-neo.dtb \
|
||||
sun8i-h3-nanopi-neo-air.dtb \
|
||||
|
Loading…
x
Reference in New Issue
Block a user