Skip to content

Commit 5e9af4b

Browse files
committed
Merge tag 'fbdev-for-6.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev
Pull fbdev fixes from Helge Deller: - Fix Matrox G200eW initialization failure - Fix build failure of offb driver when built as module - Optimize stack usage in omapfb * tag 'fbdev-for-6.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev: fbdev: omapfb: avoid stack overflow warning fbdev: matroxfb: G200eW: Increase max memory from 1 MB to 16 MB fbdev: atyfb: use strscpy() to instead of strncpy() fbdev: omapfb: use strscpy() to instead of strncpy() fbdev: make offb driver tristate
2 parents 41c03ba + 634cf6e commit 5e9af4b

File tree

5 files changed

+25
-19
lines changed

5 files changed

+25
-19
lines changed

drivers/video/fbdev/Kconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,8 +456,8 @@ config FB_ATARI
456456
chipset found in Ataris.
457457

458458
config FB_OF
459-
bool "Open Firmware frame buffer device support"
460-
depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
459+
tristate "Open Firmware frame buffer device support"
460+
depends on FB && PPC && (!PPC_PSERIES || PCI)
461461
depends on !DRM_OFDRM
462462
select APERTURE_HELPERS
463463
select FB_CFB_FILLRECT

drivers/video/fbdev/aty/atyfb_base.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3192,8 +3192,7 @@ static void aty_init_lcd(struct atyfb_par *par, u32 bios_base)
31923192
* which we print to the screen.
31933193
*/
31943194
id = *(u8 *)par->lcd_table;
3195-
strncpy(model, (char *)par->lcd_table+1, 24);
3196-
model[23] = 0;
3195+
strscpy(model, (char *)par->lcd_table+1, sizeof(model));
31973196

31983197
width = par->lcd_width = *(u16 *)(par->lcd_table+25);
31993198
height = par->lcd_height = *(u16 *)(par->lcd_table+27);

drivers/video/fbdev/matrox/matroxfb_base.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,8 +1378,8 @@ static struct video_board vbG200 = {
13781378
.lowlevel = &matrox_G100
13791379
};
13801380
static struct video_board vbG200eW = {
1381-
.maxvram = 0x100000,
1382-
.maxdisplayable = 0x800000,
1381+
.maxvram = 0x1000000,
1382+
.maxdisplayable = 0x0800000,
13831383
.accelID = FB_ACCEL_MATROX_MGAG200,
13841384
.lowlevel = &matrox_G100
13851385
};

drivers/video/fbdev/omap/omapfb_main.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,7 +1447,7 @@ static int fbinfo_init(struct omapfb_device *fbdev, struct fb_info *info)
14471447
info->fbops = &omapfb_ops;
14481448
info->flags = FBINFO_FLAG_DEFAULT;
14491449

1450-
strncpy(fix->id, MODULE_NAME, sizeof(fix->id));
1450+
strscpy(fix->id, MODULE_NAME, sizeof(fix->id));
14511451

14521452
info->pseudo_palette = fbdev->pseudo_palette;
14531453

@@ -1573,8 +1573,7 @@ static int omapfb_find_ctrl(struct omapfb_device *fbdev)
15731573

15741574
fbdev->ctrl = NULL;
15751575

1576-
strncpy(name, conf->lcd.ctrl_name, sizeof(name) - 1);
1577-
name[sizeof(name) - 1] = '\0';
1576+
strscpy(name, conf->lcd.ctrl_name, sizeof(name));
15781577

15791578
if (strcmp(name, "internal") == 0) {
15801579
fbdev->ctrl = fbdev->int_ctrl;

drivers/video/fbdev/omap2/omapfb/dss/dsi.c

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1536,22 +1536,28 @@ static void dsi_dump_dsidev_irqs(struct platform_device *dsidev,
15361536
{
15371537
struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
15381538
unsigned long flags;
1539-
struct dsi_irq_stats stats;
1539+
struct dsi_irq_stats *stats;
1540+
1541+
stats = kzalloc(sizeof(*stats), GFP_KERNEL);
1542+
if (!stats) {
1543+
seq_printf(s, "out of memory\n");
1544+
return;
1545+
}
15401546

15411547
spin_lock_irqsave(&dsi->irq_stats_lock, flags);
15421548

1543-
stats = dsi->irq_stats;
1549+
*stats = dsi->irq_stats;
15441550
memset(&dsi->irq_stats, 0, sizeof(dsi->irq_stats));
15451551
dsi->irq_stats.last_reset = jiffies;
15461552

15471553
spin_unlock_irqrestore(&dsi->irq_stats_lock, flags);
15481554

15491555
seq_printf(s, "period %u ms\n",
1550-
jiffies_to_msecs(jiffies - stats.last_reset));
1556+
jiffies_to_msecs(jiffies - stats->last_reset));
15511557

1552-
seq_printf(s, "irqs %d\n", stats.irq_count);
1558+
seq_printf(s, "irqs %d\n", stats->irq_count);
15531559
#define PIS(x) \
1554-
seq_printf(s, "%-20s %10d\n", #x, stats.dsi_irqs[ffs(DSI_IRQ_##x)-1])
1560+
seq_printf(s, "%-20s %10d\n", #x, stats->dsi_irqs[ffs(DSI_IRQ_##x)-1])
15551561

15561562
seq_printf(s, "-- DSI%d interrupts --\n", dsi->module_id + 1);
15571563
PIS(VC0);
@@ -1575,10 +1581,10 @@ static void dsi_dump_dsidev_irqs(struct platform_device *dsidev,
15751581

15761582
#define PIS(x) \
15771583
seq_printf(s, "%-20s %10d %10d %10d %10d\n", #x, \
1578-
stats.vc_irqs[0][ffs(DSI_VC_IRQ_##x)-1], \
1579-
stats.vc_irqs[1][ffs(DSI_VC_IRQ_##x)-1], \
1580-
stats.vc_irqs[2][ffs(DSI_VC_IRQ_##x)-1], \
1581-
stats.vc_irqs[3][ffs(DSI_VC_IRQ_##x)-1]);
1584+
stats->vc_irqs[0][ffs(DSI_VC_IRQ_##x)-1], \
1585+
stats->vc_irqs[1][ffs(DSI_VC_IRQ_##x)-1], \
1586+
stats->vc_irqs[2][ffs(DSI_VC_IRQ_##x)-1], \
1587+
stats->vc_irqs[3][ffs(DSI_VC_IRQ_##x)-1]);
15821588

15831589
seq_printf(s, "-- VC interrupts --\n");
15841590
PIS(CS);
@@ -1594,7 +1600,7 @@ static void dsi_dump_dsidev_irqs(struct platform_device *dsidev,
15941600

15951601
#define PIS(x) \
15961602
seq_printf(s, "%-20s %10d\n", #x, \
1597-
stats.cio_irqs[ffs(DSI_CIO_IRQ_##x)-1]);
1603+
stats->cio_irqs[ffs(DSI_CIO_IRQ_##x)-1]);
15981604

15991605
seq_printf(s, "-- CIO interrupts --\n");
16001606
PIS(ERRSYNCESC1);
@@ -1618,6 +1624,8 @@ static void dsi_dump_dsidev_irqs(struct platform_device *dsidev,
16181624
PIS(ULPSACTIVENOT_ALL0);
16191625
PIS(ULPSACTIVENOT_ALL1);
16201626
#undef PIS
1627+
1628+
kfree(stats);
16211629
}
16221630

16231631
static void dsi1_dump_irqs(struct seq_file *s)

0 commit comments

Comments
 (0)