I looked into this for a 6.8.0 series Kernel, since that is what currently have on a Ubuntu 24.04.2 LTS system.
The system used a Quadro K4200 video card which exposes a I2C bus which can read the identity of attached monitor:
$ sudo i2cdump -y -r 0-0x7f 1 0x50 c | tail -8 | cut -b 5-51 | edid-decode edid-decode (hex): 00 ff ff ff ff ff ff 00 22 f0 6a 28 01 01 01 01 02 15 01 03 80 36 23 78 2e fc 81 a4 55 4d 9d 25 12 50 54 21 08 00 81 40 81 80 95 00 a9 40 b3 00 d1 c0 01 01 01 01 28 3c 80 a0 70 b0 23 40 30 20 36 00 22 60 21 00 00 1a 00 00 00 fd 00 3b 3d 18 50 11 00 0a 20 20 20 20 20 20 00 00 00 fc 00 48 50 20 5a 52 32 34 77 0a 20 20 20 20 00 00 00 ff 00 43 4e 54 31 30 32 31 34 30 36 0a 20 20 00 83 ---------------- Block 0, Base EDID: EDID Structure Version & Revision: 1.3 Vendor & Product Identification: Manufacturer: HWP Model: 10346 Serial Number: 16843009 Made in: week 2 of 2011 Basic Display Parameters & Features: Digital display Maximum image size: 54 cm x 35 cm Gamma: 2.20 DPMS levels: Off RGB color display Default (sRGB) color space is primary color space First detailed timing is the preferred timing Color Characteristics: Red : 0.6435, 0.3349 Green: 0.3037, 0.6132 Blue : 0.1464, 0.0703 White: 0.3125, 0.3291 Established Timings I & II: DMT 0x04: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz DMT 0x09: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz DMT 0x10: 1024x768 60.003840 Hz 4:3 48.363 kHz 65.000000 MHz Standard Timings: DMT 0x20: 1280x960 60.000000 Hz 4:3 60.000 kHz 108.000000 MHz DMT 0x23: 1280x1024 60.019740 Hz 5:4 63.981 kHz 108.000000 MHz DMT 0x2f: 1440x900 59.887445 Hz 16:10 55.935 kHz 106.500000 MHz DMT 0x33: 1600x1200 60.000000 Hz 4:3 75.000 kHz 162.000000 MHz DMT 0x3a: 1680x1050 59.954250 Hz 16:10 65.290 kHz 146.250000 MHz DMT 0x52: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz Detailed Timing Descriptors: DTD 1: 1920x1200 59.950171 Hz 8:5 74.038 kHz 154.000000 MHz (546 mm x 352 mm) Hfront 48 Hsync 32 Hback 80 Hpol P Vfront 3 Vsync 6 Vback 26 Vpol N Display Range Limits: Monitor ranges (GTF): 59-61 Hz V, 24-80 kHz H, max dotclock 170 MHz Display Product Name: 'HP ZR24w' Display Product Serial Number: 'CNT1021406' Checksum: 0x83
The Quadro K4200 uses the nouveau driver, which also has a dependency on the i2c-algo-bit module, as does the i915 driver from the question.
Looking under /sys/class/i2c-adapter for the I2C buses provided by the Quadro K4200, I can't see any files available to user space which define the I2C bus speed.
The i2c-algo-bit.c source code shows this a software bit-banged driver where software controls the individual SCL and SDA signals on the I2C bus with software used to insert minimum delays between toggling of the signals on the I2C bus.
struct i2c_algo_bit_data has the following field which is used control the software timing:
int udelay; /* half clock cycle time in us, minimum 2 us for fast-mode I2C, minimum 5 us for standard-mode I2C and SMBus, maximum 50 us for SMBus */
The functions in i2c-algo-bit.c have calls to udelay(), sometimes delaying for adap->udelay and other times (adap->udelay + 1) / 2.
The i915/display/intel_gmbus.c driver used in the question hard-codes the I2C bus speed with the following macro:
#define I2C_RISEFALL_TIME 10
Which is used in the intel_gpio_setup function to initialise the i2c_algo_bit_data udelay:
algo->udelay = I2C_RISEFALL_TIME;
Therefore, the I2C bus speed used by the i915 will be a maximum of 50 kHz (since the half clock cycle time is hard coded as 10 microseconds). The actual bus speed will probably be lower, due to software delays used to control the timing.
The nouveau driver used for the Quadro K4200 also hard codes the same udelay value for the i2c-algo-bit module, in the nvkm_i2c_bus_ctor function in nouveau/nvkm/subdev/i2c/bus.c