Skip to content

Commit 6f784a3

Browse files
committed
Merge tag 'media/v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media fixes from Mauro Carvalho Chehab: - a fix for the media controller links in both hantro driver and in v4l2-mem2mem core - some fixes for the pulse8-cec driver - vicodec: handle alpha channel for RGB32 formats, as it may be used - mc-entity.c: fix handling of pad flags * tag 'media/v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: media: hantro: Fix broken media controller links media: mc-entity.c: use & to check pad flags, not == media: v4l2-mem2mem.c: fix broken links media: vicodec: process all 4 components for RGB32 formats media: pulse8-cec: close serio in disconnect, not adap_free media: pulse8-cec: INIT_DELAYED_WORK was called too late
2 parents 9d588f6 + d171c45 commit 6f784a3

File tree

5 files changed

+22
-36
lines changed

5 files changed

+22
-36
lines changed

drivers/media/mc/mc-entity.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -639,9 +639,9 @@ int media_get_pad_index(struct media_entity *entity, bool is_sink,
639639
return -EINVAL;
640640

641641
for (i = 0; i < entity->num_pads; i++) {
642-
if (entity->pads[i].flags == MEDIA_PAD_FL_SINK)
642+
if (entity->pads[i].flags & MEDIA_PAD_FL_SINK)
643643
pad_is_sink = true;
644-
else if (entity->pads[i].flags == MEDIA_PAD_FL_SOURCE)
644+
else if (entity->pads[i].flags & MEDIA_PAD_FL_SOURCE)
645645
pad_is_sink = false;
646646
else
647647
continue; /* This is an error! */

drivers/media/platform/vicodec/codec-v4l2-fwht.c

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,17 @@ static const struct v4l2_fwht_pixfmt_info v4l2_fwht_pixfmts[] = {
2727
{ V4L2_PIX_FMT_BGR24, 3, 3, 1, 3, 3, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
2828
{ V4L2_PIX_FMT_RGB24, 3, 3, 1, 3, 3, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
2929
{ V4L2_PIX_FMT_HSV24, 3, 3, 1, 3, 3, 1, 1, 3, 1, FWHT_FL_PIXENC_HSV},
30-
{ V4L2_PIX_FMT_BGR32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
31-
{ V4L2_PIX_FMT_XBGR32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
30+
{ V4L2_PIX_FMT_BGR32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
31+
{ V4L2_PIX_FMT_XBGR32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
3232
{ V4L2_PIX_FMT_ABGR32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
33-
{ V4L2_PIX_FMT_RGB32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
34-
{ V4L2_PIX_FMT_XRGB32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
33+
{ V4L2_PIX_FMT_RGB32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
34+
{ V4L2_PIX_FMT_XRGB32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
3535
{ V4L2_PIX_FMT_ARGB32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
36-
{ V4L2_PIX_FMT_BGRX32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
36+
{ V4L2_PIX_FMT_BGRX32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
3737
{ V4L2_PIX_FMT_BGRA32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
38-
{ V4L2_PIX_FMT_RGBX32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
38+
{ V4L2_PIX_FMT_RGBX32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
3939
{ V4L2_PIX_FMT_RGBA32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
40-
{ V4L2_PIX_FMT_HSV32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_HSV},
40+
{ V4L2_PIX_FMT_HSV32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_HSV},
4141
{ V4L2_PIX_FMT_GREY, 1, 1, 1, 1, 0, 1, 1, 1, 1, FWHT_FL_PIXENC_RGB},
4242
};
4343

@@ -175,44 +175,28 @@ static int prepare_raw_frame(struct fwht_raw_frame *rf,
175175
case V4L2_PIX_FMT_RGB32:
176176
case V4L2_PIX_FMT_XRGB32:
177177
case V4L2_PIX_FMT_HSV32:
178-
rf->cr = rf->luma + 1;
179-
rf->cb = rf->cr + 2;
180-
rf->luma += 2;
181-
break;
182-
case V4L2_PIX_FMT_BGR32:
183-
case V4L2_PIX_FMT_XBGR32:
184-
rf->cb = rf->luma;
185-
rf->cr = rf->cb + 2;
186-
rf->luma++;
187-
break;
188178
case V4L2_PIX_FMT_ARGB32:
189179
rf->alpha = rf->luma;
190180
rf->cr = rf->luma + 1;
191181
rf->cb = rf->cr + 2;
192182
rf->luma += 2;
193183
break;
184+
case V4L2_PIX_FMT_BGR32:
185+
case V4L2_PIX_FMT_XBGR32:
194186
case V4L2_PIX_FMT_ABGR32:
195187
rf->cb = rf->luma;
196188
rf->cr = rf->cb + 2;
197189
rf->luma++;
198190
rf->alpha = rf->cr + 1;
199191
break;
200192
case V4L2_PIX_FMT_BGRX32:
201-
rf->cb = rf->luma + 1;
202-
rf->cr = rf->cb + 2;
203-
rf->luma += 2;
204-
break;
205193
case V4L2_PIX_FMT_BGRA32:
206194
rf->alpha = rf->luma;
207195
rf->cb = rf->luma + 1;
208196
rf->cr = rf->cb + 2;
209197
rf->luma += 2;
210198
break;
211199
case V4L2_PIX_FMT_RGBX32:
212-
rf->cr = rf->luma;
213-
rf->cb = rf->cr + 2;
214-
rf->luma++;
215-
break;
216200
case V4L2_PIX_FMT_RGBA32:
217201
rf->alpha = rf->luma + 3;
218202
rf->cr = rf->luma;

drivers/media/usb/pulse8-cec/pulse8-cec.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -635,8 +635,6 @@ static void pulse8_cec_adap_free(struct cec_adapter *adap)
635635
cancel_delayed_work_sync(&pulse8->ping_eeprom_work);
636636
cancel_work_sync(&pulse8->irq_work);
637637
cancel_work_sync(&pulse8->tx_work);
638-
serio_close(pulse8->serio);
639-
serio_set_drvdata(pulse8->serio, NULL);
640638
kfree(pulse8);
641639
}
642640

@@ -652,6 +650,9 @@ static void pulse8_disconnect(struct serio *serio)
652650
struct pulse8 *pulse8 = serio_get_drvdata(serio);
653651

654652
cec_unregister_adapter(pulse8->adap);
653+
pulse8->serio = NULL;
654+
serio_set_drvdata(serio, NULL);
655+
serio_close(serio);
655656
}
656657

657658
static int pulse8_setup(struct pulse8 *pulse8, struct serio *serio,
@@ -840,6 +841,8 @@ static int pulse8_connect(struct serio *serio, struct serio_driver *drv)
840841
serio_set_drvdata(serio, pulse8);
841842
INIT_WORK(&pulse8->irq_work, pulse8_irq_work_handler);
842843
INIT_WORK(&pulse8->tx_work, pulse8_tx_work_handler);
844+
INIT_DELAYED_WORK(&pulse8->ping_eeprom_work,
845+
pulse8_ping_eeprom_work_handler);
843846
mutex_init(&pulse8->lock);
844847
spin_lock_init(&pulse8->msg_lock);
845848
pulse8->config_pending = false;
@@ -865,17 +868,16 @@ static int pulse8_connect(struct serio *serio, struct serio_driver *drv)
865868
pulse8->restoring_config = true;
866869
}
867870

868-
INIT_DELAYED_WORK(&pulse8->ping_eeprom_work,
869-
pulse8_ping_eeprom_work_handler);
870871
schedule_delayed_work(&pulse8->ping_eeprom_work, PING_PERIOD);
871872

872873
return 0;
873874

874875
close_serio:
876+
pulse8->serio = NULL;
877+
serio_set_drvdata(serio, NULL);
875878
serio_close(serio);
876879
delete_adap:
877880
cec_delete_adapter(pulse8->adap);
878-
serio_set_drvdata(serio, NULL);
879881
free_device:
880882
kfree(pulse8);
881883
return err;

drivers/media/v4l2-core/v4l2-mem2mem.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -880,12 +880,12 @@ int v4l2_m2m_register_media_controller(struct v4l2_m2m_dev *m2m_dev,
880880
goto err_rel_entity1;
881881

882882
/* Connect the three entities */
883-
ret = media_create_pad_link(m2m_dev->source, 0, &m2m_dev->proc, 1,
883+
ret = media_create_pad_link(m2m_dev->source, 0, &m2m_dev->proc, 0,
884884
MEDIA_LNK_FL_IMMUTABLE | MEDIA_LNK_FL_ENABLED);
885885
if (ret)
886886
goto err_rel_entity2;
887887

888-
ret = media_create_pad_link(&m2m_dev->proc, 0, &m2m_dev->sink, 0,
888+
ret = media_create_pad_link(&m2m_dev->proc, 1, &m2m_dev->sink, 0,
889889
MEDIA_LNK_FL_IMMUTABLE | MEDIA_LNK_FL_ENABLED);
890890
if (ret)
891891
goto err_rm_links0;

drivers/staging/media/hantro/hantro_drv.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,13 +558,13 @@ static int hantro_attach_func(struct hantro_dev *vpu,
558558
goto err_rel_entity1;
559559

560560
/* Connect the three entities */
561-
ret = media_create_pad_link(&func->vdev.entity, 0, &func->proc, 1,
561+
ret = media_create_pad_link(&func->vdev.entity, 0, &func->proc, 0,
562562
MEDIA_LNK_FL_IMMUTABLE |
563563
MEDIA_LNK_FL_ENABLED);
564564
if (ret)
565565
goto err_rel_entity2;
566566

567-
ret = media_create_pad_link(&func->proc, 0, &func->sink, 0,
567+
ret = media_create_pad_link(&func->proc, 1, &func->sink, 0,
568568
MEDIA_LNK_FL_IMMUTABLE |
569569
MEDIA_LNK_FL_ENABLED);
570570
if (ret)

0 commit comments

Comments
 (0)