Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'fbdev-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev

Pull fbdev updates from Helge Deller:
"Fixes:
- omap: use threaded IRQ for LCD DMA
- omapfb: Fix an OF node leak in dss_of_port_get_parent_device()
- vga16fb: fix orig_video_isVGA confusion

Updates & cleanups:
- hdmi: Remove unused hdmi_infoframe_check
- omapfb:
- Remove unused hdmi5_core_handle_irqs
- Use of_property_present() to test existence of DT property
- Use syscon_regmap_lookup_by_phandle_args
- efifb: Change the return value type to void
- lcdcfb: Use backlight helper
- udlfb: Use const 'struct bin_attribute' callback
- radeon: Use const 'struct bin_attribute' callbacks
- sm501fb: Use str_enabled_disabled() helper in sm501fb_init_fb()"

* tag 'fbdev-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
fbdev: lcdcfb: Use backlight helper
fbdev: vga16fb: fix orig_video_isVGA confusion
fbdev: omapfb: Use syscon_regmap_lookup_by_phandle_args
fbdev: omapfb: Use of_property_present() to test existence of DT property
fbdev: sm501fb: Use str_enabled_disabled() helper in sm501fb_init_fb()
fbdev: omap: use threaded IRQ for LCD DMA
fbdev: omapfb: Fix an OF node leak in dss_of_port_get_parent_device()
fbdev: efifb: Change the return value type to void
fbdev: omapfb: Remove unused hdmi5_core_handle_irqs
video: hdmi: Remove unused hdmi_infoframe_check
fbdev: radeon: Use const 'struct bin_attribute' callbacks
fbdev: udlfb: Use const 'struct bin_attribute' callback

+23 -78
+4 -4
drivers/video/fbdev/aty/radeon_base.c
··· 2199 2199 2200 2200 2201 2201 static ssize_t radeon_show_edid1(struct file *filp, struct kobject *kobj, 2202 - struct bin_attribute *bin_attr, 2202 + const struct bin_attribute *bin_attr, 2203 2203 char *buf, loff_t off, size_t count) 2204 2204 { 2205 2205 struct device *dev = kobj_to_dev(kobj); ··· 2211 2211 2212 2212 2213 2213 static ssize_t radeon_show_edid2(struct file *filp, struct kobject *kobj, 2214 - struct bin_attribute *bin_attr, 2214 + const struct bin_attribute *bin_attr, 2215 2215 char *buf, loff_t off, size_t count) 2216 2216 { 2217 2217 struct device *dev = kobj_to_dev(kobj); ··· 2227 2227 .mode = 0444, 2228 2228 }, 2229 2229 .size = EDID_LENGTH, 2230 - .read = radeon_show_edid1, 2230 + .read_new = radeon_show_edid1, 2231 2231 }; 2232 2232 2233 2233 static const struct bin_attribute edid2_attr = { ··· 2236 2236 .mode = 0444, 2237 2237 }, 2238 2238 .size = EDID_LENGTH, 2239 - .read = radeon_show_edid2, 2239 + .read_new = radeon_show_edid2, 2240 2240 }; 2241 2241 2242 2242 static int radeonfb_pci_register(struct pci_dev *pdev,
+1 -3
drivers/video/fbdev/efifb.c
··· 275 275 .fb_setcolreg = efifb_setcolreg, 276 276 }; 277 277 278 - static int efifb_setup(struct screen_info *si, char *options) 278 + static void efifb_setup(struct screen_info *si, char *options) 279 279 { 280 280 char *this_opt; 281 281 ··· 299 299 use_bgrt = false; 300 300 } 301 301 } 302 - 303 - return 0; 304 302 } 305 303 306 304 static inline bool fb_base_is_valid(struct screen_info *si)
+2 -2
drivers/video/fbdev/omap/lcd_dma.c
··· 432 432 433 433 spin_lock_init(&lcd_dma.lock); 434 434 435 - r = request_irq(INT_DMA_LCD, lcd_dma_irq_handler, 0, 436 - "LCD DMA", NULL); 435 + r = request_threaded_irq(INT_DMA_LCD, NULL, lcd_dma_irq_handler, 436 + IRQF_ONESHOT, "LCD DMA", NULL); 437 437 if (r != 0) 438 438 pr_err("unable to request IRQ for LCD DMA (error %d)\n", r); 439 439
+3 -8
drivers/video/fbdev/omap2/omapfb/dss/dispc.c
··· 3933 3933 return -ENODEV; 3934 3934 } 3935 3935 3936 - if (np && of_property_read_bool(np, "syscon-pol")) { 3937 - dispc.syscon_pol = syscon_regmap_lookup_by_phandle(np, "syscon-pol"); 3936 + if (np && of_property_present(np, "syscon-pol")) { 3937 + dispc.syscon_pol = syscon_regmap_lookup_by_phandle_args(np, "syscon-pol", 3938 + 1, &dispc.syscon_pol_offset); 3938 3939 if (IS_ERR(dispc.syscon_pol)) { 3939 3940 dev_err(&pdev->dev, "failed to get syscon-pol regmap\n"); 3940 3941 return PTR_ERR(dispc.syscon_pol); 3941 - } 3942 - 3943 - if (of_property_read_u32_index(np, "syscon-pol", 1, 3944 - &dispc.syscon_pol_offset)) { 3945 - dev_err(&pdev->dev, "failed to get syscon-pol offset\n"); 3946 - return -EINVAL; 3947 3942 } 3948 3943 } 3949 3944
+1
drivers/video/fbdev/omap2/omapfb/dss/dss-of.c
··· 36 36 np = of_get_next_parent(np); 37 37 } 38 38 39 + of_node_put(np); 39 40 return NULL; 40 41 } 41 42
-17
drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c
··· 567 567 REG_FLD_MOD(core->base, HDMI_CORE_IH_MUTE, 0x0, 1, 0); 568 568 } 569 569 570 - int hdmi5_core_handle_irqs(struct hdmi_core_data *core) 571 - { 572 - void __iomem *base = core->base; 573 - 574 - REG_FLD_MOD(base, HDMI_CORE_IH_FC_STAT0, 0xff, 7, 0); 575 - REG_FLD_MOD(base, HDMI_CORE_IH_FC_STAT1, 0xff, 7, 0); 576 - REG_FLD_MOD(base, HDMI_CORE_IH_FC_STAT2, 0xff, 7, 0); 577 - REG_FLD_MOD(base, HDMI_CORE_IH_AS_STAT0, 0xff, 7, 0); 578 - REG_FLD_MOD(base, HDMI_CORE_IH_PHY_STAT0, 0xff, 7, 0); 579 - REG_FLD_MOD(base, HDMI_CORE_IH_I2CM_STAT0, 0xff, 7, 0); 580 - REG_FLD_MOD(base, HDMI_CORE_IH_CEC_STAT0, 0xff, 7, 0); 581 - REG_FLD_MOD(base, HDMI_CORE_IH_VP_STAT0, 0xff, 7, 0); 582 - REG_FLD_MOD(base, HDMI_CORE_IH_I2CMPHY_STAT0, 0xff, 7, 0); 583 - 584 - return 0; 585 - } 586 - 587 570 void hdmi5_configure(struct hdmi_core_data *core, struct hdmi_wp_data *wp, 588 571 struct hdmi_config *cfg) 589 572 {
-1
drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.h
··· 283 283 284 284 int hdmi5_read_edid(struct hdmi_core_data *core, u8 *edid, int len); 285 285 void hdmi5_core_dump(struct hdmi_core_data *core, struct seq_file *s); 286 - int hdmi5_core_handle_irqs(struct hdmi_core_data *core); 287 286 void hdmi5_configure(struct hdmi_core_data *core, struct hdmi_wp_data *wp, 288 287 struct hdmi_config *cfg); 289 288 int hdmi5_core_init(struct platform_device *pdev, struct hdmi_core_data *core);
+1 -5
drivers/video/fbdev/sh_mobile_lcdcfb.c
··· 2123 2123 static int sh_mobile_lcdc_update_bl(struct backlight_device *bdev) 2124 2124 { 2125 2125 struct sh_mobile_lcdc_chan *ch = bl_get_data(bdev); 2126 - int brightness = bdev->props.brightness; 2127 - 2128 - if (bdev->props.power != BACKLIGHT_POWER_ON || 2129 - bdev->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK)) 2130 - brightness = 0; 2126 + int brightness = backlight_get_brightness(bdev); 2131 2127 2132 2128 ch->bl_brightness = brightness; 2133 2129 return ch->cfg->bl_info.set_brightness(brightness);
+3 -2
drivers/video/fbdev/sm501fb.c
··· 27 27 #include <linux/clk.h> 28 28 #include <linux/console.h> 29 29 #include <linux/io.h> 30 + #include <linux/string_choices.h> 30 31 31 32 #include <linux/uaccess.h> 32 33 #include <asm/div64.h> ··· 1713 1712 BUG(); 1714 1713 } 1715 1714 1716 - dev_info(info->dev, "fb %s %sabled at start\n", 1717 - fbname, enable ? "en" : "dis"); 1715 + dev_info(info->dev, "fb %s %s at start\n", 1716 + fbname, str_enabled_disabled(enable)); 1718 1717 1719 1718 /* check to see if our routing allows this */ 1720 1719
+4 -4
drivers/video/fbdev/udlfb.c
··· 1416 1416 1417 1417 static ssize_t edid_show( 1418 1418 struct file *filp, 1419 - struct kobject *kobj, struct bin_attribute *a, 1419 + struct kobject *kobj, const struct bin_attribute *a, 1420 1420 char *buf, loff_t off, size_t count) { 1421 1421 struct device *fbdev = kobj_to_dev(kobj); 1422 1422 struct fb_info *fb_info = dev_get_drvdata(fbdev); ··· 1438 1438 1439 1439 static ssize_t edid_store( 1440 1440 struct file *filp, 1441 - struct kobject *kobj, struct bin_attribute *a, 1441 + struct kobject *kobj, const struct bin_attribute *a, 1442 1442 char *src, loff_t src_off, size_t src_size) { 1443 1443 struct device *fbdev = kobj_to_dev(kobj); 1444 1444 struct fb_info *fb_info = dev_get_drvdata(fbdev); ··· 1482 1482 .attr.name = "edid", 1483 1483 .attr.mode = 0666, 1484 1484 .size = EDID_LENGTH, 1485 - .read = edid_show, 1486 - .write = edid_store 1485 + .read_new = edid_show, 1486 + .write_new = edid_store 1487 1487 }; 1488 1488 1489 1489 static const struct device_attribute fb_device_attrs[] = {
+4 -3
drivers/video/fbdev/vga16fb.c
··· 185 185 /* Check if the video mode is supported by the driver */ 186 186 static inline int check_mode_supported(const struct screen_info *si) 187 187 { 188 + unsigned int type = screen_info_video_type(si); 189 + 188 190 /* only EGA and VGA in 16 color graphic mode are supported */ 189 - if (si->orig_video_isVGA != VIDEO_TYPE_EGAC && 190 - si->orig_video_isVGA != VIDEO_TYPE_VGAC) 191 + if (type != VIDEO_TYPE_EGAC && type != VIDEO_TYPE_VGAC) 191 192 return -ENODEV; 192 193 193 194 if (si->orig_video_mode != 0x0D && /* 320x200/4 (EGA) */ ··· 1339 1338 printk(KERN_INFO "vga16fb: mapped to 0x%p\n", info->screen_base); 1340 1339 par = info->par; 1341 1340 1342 - par->isVGA = si->orig_video_isVGA == VIDEO_TYPE_VGAC; 1341 + par->isVGA = screen_info_video_type(si) == VIDEO_TYPE_VGAC; 1343 1342 par->palette_blanked = 0; 1344 1343 par->vesa_blanked = 0; 1345 1344
-28
drivers/video/hdmi.c
··· 895 895 } 896 896 897 897 /** 898 - * hdmi_infoframe_check() - check a HDMI infoframe 899 - * @frame: HDMI infoframe 900 - * 901 - * Validates that the infoframe is consistent and updates derived fields 902 - * (eg. length) based on other fields. 903 - * 904 - * Returns 0 on success or a negative error code on failure. 905 - */ 906 - int 907 - hdmi_infoframe_check(union hdmi_infoframe *frame) 908 - { 909 - switch (frame->any.type) { 910 - case HDMI_INFOFRAME_TYPE_AVI: 911 - return hdmi_avi_infoframe_check(&frame->avi); 912 - case HDMI_INFOFRAME_TYPE_SPD: 913 - return hdmi_spd_infoframe_check(&frame->spd); 914 - case HDMI_INFOFRAME_TYPE_AUDIO: 915 - return hdmi_audio_infoframe_check(&frame->audio); 916 - case HDMI_INFOFRAME_TYPE_VENDOR: 917 - return hdmi_vendor_any_infoframe_check(&frame->vendor); 918 - default: 919 - WARN(1, "Bad infoframe type %d\n", frame->any.type); 920 - return -EINVAL; 921 - } 922 - } 923 - EXPORT_SYMBOL(hdmi_infoframe_check); 924 - 925 - /** 926 898 * hdmi_infoframe_pack_only() - write a HDMI infoframe to binary buffer 927 899 * @frame: HDMI infoframe 928 900 * @buffer: destination buffer
-1
include/linux/hdmi.h
··· 445 445 size_t size); 446 446 ssize_t hdmi_infoframe_pack_only(const union hdmi_infoframe *frame, 447 447 void *buffer, size_t size); 448 - int hdmi_infoframe_check(union hdmi_infoframe *frame); 449 448 int hdmi_infoframe_unpack(union hdmi_infoframe *frame, 450 449 const void *buffer, size_t size); 451 450 void hdmi_infoframe_log(const char *level, struct device *dev,